Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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# - Fatal编程技术网

如何在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方法。但决不要抛出已知的异常。非常糟糕的编程和审查将不会高兴。干杯