Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 捕获对象在代码…c之前引发的异常#_C#_.net_Exception Handling - Fatal编程技术网

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

C# 捕获对象在代码…c之前引发的异常#,c#,.net,exception-handling,C#,.net,Exception Handling,C#.Net 4.6.1 我正在使用第三方库。当迭代其对象时,我的程序会崩溃,因为我从库访问的属性引发了异常 因此,当我的程序到达这一行代码时,会引发异常: case CellType.Formula: { cNew.CellFormula = "IFERROR(FF3 / EY3,\"\")"; cNew.SetCellFormula(cOld.CellFormula); //this is where it blows up break; } 调试代码时,我可以看

C#.Net 4.6.1

我正在使用第三方库。当迭代其对象时,我的程序会崩溃,因为我从库访问的属性引发了异常

因此,当我的程序到达这一行代码时,会引发异常:

case CellType.Formula:
{
    cNew.CellFormula = "IFERROR(FF3 / EY3,\"\")";
    cNew.SetCellFormula(cOld.CellFormula); //this is where it blows up
    break;
}
调试代码时,我可以看到抛出了异常。上图显示了这一点。因此,我知道library属性中出现了一些错误,我想做的是在使用该属性访问代码行之前捕获此错误,并继续执行应用程序

有没有办法检查一个对象是否存在异常,并告诉我的代码跳过它或做任何事情?例如:

if (cOld.CellFormula == Exception){
    // do something
}
谢谢你打断我的话

cNew.SetCellFormula(cOld.CellFormula);
你可以试着抓住它,就像这样

try
{
    cNew.SetCellFormula(cOld.CellFormula);
}
catch(Exception e)
{
    MessageBox.Show(e.Message);
}
这将显示一个包含错误文本的消息框

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

MessageBox.Show(e.Message);


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

您是否尝试过try catch?您是否不知道如何处理异常?停止你正在做的事。去买一些初级的C#books。那么你想在异常被抛出之前抓住它?不,那是不可能的。当然,您可以对代码进行结构化,使其不会首先引发异常,但如果您无法更改代码,您唯一的选择就是不执行引发异常的代码。我们不知道这个图书馆是怎么建的,所以我们不能回答这个问题。如果它在反序列化后首次使用对象的任何属性时抛出SerializationException(但这只是猜测),那么应该有一些属性指示成功或失败。如果没有,剩下的就是捕获异常。如果解决方案如此简单,为什么你们不发布呢?如果你不知道答案,不要评论。我想过这个,但我在想是否还有别的办法。我的代码已经在一个外部的try/catch块中,但是当它碰到这个块时,它就停止了显示。我正在努力避免表演的阻碍,试着接球。谢谢
Console.WriteLine(e.Message);