Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存在异常时的继承异常_C#_Oop_Exception_Inheritance - Fatal编程技术网

C# 存在异常时的继承异常

C# 存在异常时的继承异常,c#,oop,exception,inheritance,C#,Oop,Exception,Inheritance,我有一些抛出异常的函数。我希望捕获它们的代码块也会根据抛出的异常抛出异常,但要有更多的参数,如ID和Note。我该怎么做 如果有人能给我一个方向,那就好了 谢谢(对不起我的英语…) 我想要的示例(我知道代码无效…) 您需要定义自己的异常(继承自异常),该异常具有这些额外属性。有关自定义异常应采用的基本格式,请参见此处 (注意,应该使异常可序列化。)只需添加额外的属性 一旦创建了exception类(在您的例子中是LogException),那么上面的代码就可以工作了。试试这个 try {

我有一些抛出异常的函数。我希望捕获它们的代码块也会根据抛出的异常抛出异常,但要有更多的参数,如ID和Note。我该怎么做

如果有人能给我一个方向,那就好了

谢谢(对不起我的英语…)

我想要的示例(我知道代码无效…)


您需要定义自己的异常(继承自异常),该异常具有这些额外属性。有关自定义异常应采用的基本格式,请参见此处 (注意,应该使异常可序列化。)只需添加额外的属性

一旦创建了exception类(在您的例子中是LogException),那么上面的代码就可以工作了。

试试这个

try
{
    //....kaboom
}
catch (Exception ex)
{
    var newEX= new Exception("custom message", ex);
    newEX.Data.Add("any key",  "any obj");
    throw newEX;
}

构建一个包含所有参数的“State”类。然后将该类传递给异常处理程序。变量“e”可以包含一个类。为什么不首先抛出一个
LogException
?DarrenYoung不是我总是抛出异常的代码,因为我不能完全控制异常类型这是更好的答案,除了您应该创建自己的异常类型而不是抛出异常之外。您可能希望编写自己的顶级处理程序,递归地处理所有内部异常,并编译所有要记录的消息和堆栈跟踪的漂亮列表。您不应该将其称为LogException,异常名称应该说明有关问题的一些信息,而不是当您捕获它时您可能想要对其执行的操作。
try
{
    //....kaboom
}
catch (Exception ex)
{
    var newEX= new Exception("custom message", ex);
    newEX.Data.Add("any key",  "any obj");
    throw newEX;
}