我有外国人,抛出异常“未知异常”。 我想在我的代码中捕获它并写下“错误!执行此步骤:......”的消息。
所以,我的代码:
try
{
var p = new MyObject(prms); // this code failed and throw exception-"Unknown exception"
return p;
}
catch (Exception ex)
{
// Output ex
Console.WriteLine("Error! "+ex.Message);
}
如何包装外国异常并显示我的文字? 谢谢!
P.S。外国代码看起来像这样:
try
{
lock (_lockObject)
{
return MyObject();
}
}
catch (Exception exp)
{
throw ThrowWrapper(exp);
}
答案 0 :(得分:1)
类不会抛出异常,函数会抛出异常。如果MyObject
的构造函数抛出异常,则显示的代码将捕获它。如果MyObject
的另一个成员函数抛出,则需要try-catch
来调用此成员函数。
答案 1 :(得分:0)
可以在此处找到如何将“外部”异常包装在自己的异常中的一个很好的示例: http://msdn.microsoft.com/en-us/library/vstudio/system.exception.innerexception(v=vs.90).aspx
答案 2 :(得分:0)
为什么不做一些简单的事情;
使用现有代码; (参见渔获代码变化)
try
{
var p = new MyObject(prms); // this code failed and throw exception-"Unknown exception"
return p;
}
catch (Exception ex)
{
If (ex.Message.Contains("Unknown exception"))
{
//Add code here to handle the Unknown exception
}
else
{
Console.WriteLine("Error! "+ex.Message);
}
}
请注意,这是处理此问题的“快速”方式,正确的方法是创建自己的例外并处理其他一些答案。
希望有所帮助。
这会达不到你想要的吗?