在代码之前捕获对象引发的异常... c#

时间:2016-10-14 15:05:06

标签: c# .net exception-handling

C#.Net 4.6.1

我正在使用第三方库。在遍历其对象时,我的程序会爆炸,因为我从库中访问的属性引发了异常。

enter image description here

因此,当我的程序进入这行代码时,抛出异常:

case CellType.Formula:
{
    cNew.CellFormula = "IFERROR(FF3 / EY3,\"\")";
    cNew.SetCellFormula(cOld.CellFormula); //this is where it blows up
    break;
}

调试代码时,我可以看到抛出了异常。上图显示了这一点。所以,我知道库属性出了问题,我想要做的就是在使用属性访问代码行之前捕获此错误并继续使用应用程序。

有没有办法检查对象的异常并告诉我的代码跳过它或做什么?例如:

if (cOld.CellFormula == Exception){
    // do something
}

由于

1 个答案:

答案 0 :(得分:4)

在突破线上

cNew.SetCellFormula(cOld.CellFormula);

你可以尝试一下它,就像这样

try
{
    cNew.SetCellFormula(cOld.CellFormula);
}
catch(Exception e)
{
    MessageBox.Show(e.Message);
}

这将显示一个带有错误文本的消息框

如果您将此作为控制台应用程序替换

MessageBox.Show(e.Message);

使用

Console.WriteLine(e.Message);

这会将消息写入屏幕(记得在生产中将其取出!)