我有一些抛出异常的函数。我希望捕获它们的代码块也基于抛出的异常抛出异常,但是有更多参数,如ID和Note。我怎么能这样做?
如果任何人能给我一个方向,那就太好了!
谢谢(抱歉我的英文......)
我想要的示例(我知道这不是有效的代码......)
catch (Exception e)
{
LogException l=e;
l.Note = "note...";
l.ID = 12;
throw l;
}
答案 0 :(得分:2)
您需要定义具有这些额外属性的自己的异常(继承自Exception)。请参阅此处了解自定义异常应采用的基本格式 https://msdn.microsoft.com/en-us/library/ms229064(v=vs.100).aspx (请注意,您应该将异常序列化。)您只需添加额外的属性。
一旦你创建了异常类(在你的情况下是LogException),那么上面的代码就可以了。
答案 1 :(得分:1)
试试这个。
try
{
//....kaboom
}
catch (Exception ex)
{
var newEX= new Exception("custom message", ex);
newEX.Data.Add("any key", "any obj");
throw newEX;
}