TRY 块内的异常是否会中断其执行?

Mar*_*elo 2 c# vb.net exception try-catch

我正在导入多个字段,即大约 25 行代码,每行导入一个字段(就我而言,确实没有其他方法)。它位于 try-catch 块中,但有时该字段在源代码中不存在,但我必须获取其余字段。

从 20 开始。
我得到 10,
第 11 个不存在(例外)我仍然需要从 12 到 20。

如果我不想一一测试是否存在,我想知道 try 是如何工作的。如果发生异常,它不会执行其余部分,对吧?什么适合我?

obs:已经超过20个了,我想要一个智能且无污染的解决方案。

Zoi*_*erg 5

如果 try 块内发生异常,则异常之后的任何内容都不会执行。因此,如果第 11 项发生异常,则第 12 - 20 项将不会被执行。执行将从第 11 项跳转到 catch 块,如果有finally 块,则跳转到finally 块。

根据您的问题所述,当字段不存在时您会得到异常。我建议检查该字段是否存在,然后执行操作。我不建议使用 try catch 作为检查存在条件的方法。Try catch 应该用于错误处理,如果确实出现错误,通常不想继续正常执行。如果您不喜欢检查每一行的条件,或者除了捕获异常之外没有其他方法来检查它,那么我建议使用 try catch 创建一个帮助函数

boolean checkField(field){
  try{/* do operation on field*/}
  catch(Exception e){return false;}
  return true;
}

void main(){
   if !(checkField(field1)) return;
   else if !(checkField(field2)) return;
   .
   .
   .
}
Run Code Online (Sandbox Code Playgroud)