0

我有外国课程,它抛出异常“未知异常”。我想在我的代码中捕获它并写下类似“错误!执行此步骤:...”的消息。

所以,我的代码:

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);
}

如何包装外部异常并显示我的文本?谢谢!

PS国外代码是这样的:

try
        {
            lock (_lockObject)
            {
                return MyObject();
            }
        }
        catch (Exception exp)
        {
            throw ThrowWrapper(exp);
        }   
4

3 回答 3

1

类不会抛出异常,函数会。如果 的构造函数MyObject抛出异常,显示的代码将捕获它。MyObject如果抛出了另一个成员函数,则需要一个try-catch调用该成员函数的位置。

于 2013-09-30T10:29:09.623 回答
0

为什么不做一些简单的事情,比如;

使用您现有的代码;(请参阅 catch 中的代码更改)

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);
       }
}

请注意,这是一种“快速”的处理方式,正确的方法是创建自己的异常并按照其他一些答案的建议进行处理。

希望有帮助。

这不会达到你想要的吗?

于 2013-09-30T13:07:33.950 回答
0

可以在此处找到如何在您自己的异常中包装“外部”异常的一个很好的示例:http: //msdn.microsoft.com/en-us/library/vstudio/system.exception.innerexception (v=vs.90 ).aspx

于 2013-09-30T12:48:19.593 回答