SKu*_*mar 2 .net c# oop exception-handling
当我使用try,catch块时,如果抛出任何异常,则在处理catch之后停止执行程序.但是,即使有异常,我也需要继续执行程序.任何人都可以帮我怎么做?
未捕获的异常终止执行.
如果捕获了异常而没有重新抛出异常,则执行catch()子句,然后执行finally()子句(如果有的话),然后继续执行try/catch/finally块之后的语句.
如果捕获并重新抛出异常,则执行catch()子句,直到并包括throw语句; 执行finally()子句(如果有的话),然后(重新)抛出异常并继续堆栈展开.
当调用堆栈被展开时,finally()子句在超出范围时执行,而Dispose()被调用为变量声明在using语句超出范围.
没有发生的是控件不会(并且不能)在抛出原始异常时恢复.听起来您正在捕获高级别的异常 - 例如您的Main()方法 - 并期望执行在原始故障点继续.
要实现这一点,您需要在处理使上下文有意义的时刻捕获异常,并且在处理异常后,重试失败操作或忽略该问题.
做好异常处理相当困难; 因此,最好的异常处理实践是不处理它的格言.例外情况应该只是:例外.你的代码当然不应该抛出异常; 您通常也不应将例外用作验证技术或控制流操作符.
如果我理解正确,这就是你想要的:
try
{
Statement1(); // <-- Exception is thrown in here
Statement2(); // <-- You want to go here after the catch block executes
}
catch
{
HandleException();
}
Run Code Online (Sandbox Code Playgroud)
Try/catch块不能以这种方式工作.您必须按如下方式重写代码:
try
{
Statement1();
}
catch
{
}
try
{
Statement2();
}
catch
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21490 次 |
| 最近记录: |