如何从外国阶级中捕捉异常

时间:2013-09-30 10:00:56

标签: c# exception

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

所以,我的代码:

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

3 个答案:

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

请注意,这是处理此问题的“快速”方式,正确的方法是创建自己的例外并处理其他一些答案。

希望有所帮助。

这会达不到你想要的吗?