Framework/Models/Exception/SuppressedException.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Set-StrictMode -Version Latest

enum SuppressedExceptionType
{
    InvalidArgument
    NullArgument
    Generic
    InvalidOperation
}

class SuppressedException : System.Exception
{
    [SuppressedExceptionType] $ExceptionType = [SuppressedExceptionType]::InvalidArgument
    SuppressedException($message):
        Base($message)
    { }

    SuppressedException($message, [SuppressedExceptionType] $exceptionType):
        Base($message)
    {
        $this.ExceptionType = $exceptionType;
    }

    [string] ConvertToString()
    {
        $result = "";
        if($this.ExceptionType -ne [SuppressedExceptionType]::Generic)
        {
            $result = $this.ExceptionType.ToString() + ": " ;
        }
        $result = $result + $this.Message;

        return $result;
    }
}