如何在c#中抛出异常但不停止进程?
我试图在屏幕上显示消息,但我不想结束此过程。有什么办法吗如何在c#中抛出异常但不停止进程?,c#,C#,我试图在屏幕上显示消息,但我不想结束此过程。有什么办法吗 var nonValidPolicies = Policies2RedistributeBankStatementAmountFor.Where(p => p.PolicyIsNotValid); if (nonValidPolicies.Any()) throw new UserFriendlyException("Something"); 当出现异常时
var nonValidPolicies = Policies2RedistributeBankStatementAmountFor.Where(p => p.PolicyIsNotValid);
if (nonValidPolicies.Any())
throw new UserFriendlyException("Something");
当出现异常时,这意味着代码在运行时未按预期工作。抛出异常时,控件跳转到父方法以查找异常处理程序(try-catch)。如果处理程序丢失,控件将向上移动一个方法,以此类推 为了解决连续性问题,尝试将整个方法分解为更小的方法。其想法是将可能引发异常的麻烦代码排除在外,并将其包装在一个try-catch中。并在父方法中优雅地处理它
现在,看看上面给出的代码片段,对于已知问题抛出异常绝对不是一个好主意。异常应适用于运行时未知的场景,如连接失败、未找到项等。在上述场景中,您正在检查元素是否存在并引发异常。而是返回一条消息,以便父方法知道它并处理这种情况。最好使用异步方法。MessageBox?如果抛出异常但未捕获,程序将结束。您可以使用
finally
块。您是否尝试过使用try{SomeMethod();}catch(Exception ex){Console.WriteLine(“引发了异常”);}
?另请参阅。但这可能是退出前记录/显示异常的最后手段。我唯一的观点是在不使用MessageBox的情况下向用户显示消息…在这种情况下,我将使用委托(Action、Func等)。每当条件失败时,调用Action/Func方法。但决不要抛出已知的异常。非常糟糕的编程和审查将不会高兴。干杯