使用C#创建自定义异常

本文关键字:自定义异常 创建 使用 | 更新日期: 2023-09-27 18:27:42

我正试图用自己的异常类覆盖System.Exception类。我想添加参数"代码"。

我想这样做:

throw new MyException(code, "message");

然后使用以下方法捕获异常:

catch (MyException e) {
    Console.WriteLine(e.code)
}

更新:问题是我需要将异常捕获为"(MyException e)"而不是"(exception e))

这是我迄今为止的代码:

public class MyException : System.Exception
{
    public String ErrorCode = "";
    public MyException() : base()
    {
    }
    public MyException(string message, string code) : base(message)
    {
        this.ErrorCode = code;
    }
    public MyException(string message, Exception inner, string code) : base(message, inner)
    {
        this.ErrorCode = code;
    }
}

这给了我一个错误,即"System.Exception不包含'ErrorCode'的定义…"。我做错了什么?

使用C#创建自定义异常

我已经测试了您的代码,异常类是正确的,但catch是错误的。我的测试代码是这样的。

        catch (MyException ex)
        {
            Console.WriteLine(ex.ErrorCode);
        }
这是因为它是ErrorCode而不是Code
此外,将其设为公共只读属性。

编辑:

catch (MyException e) {
    Console.WriteLine(e.ErrorCode)
}