当前位置: 首页 > 编程语言 > C#

未处理异常后如何继续运行?分享

时间:2023-04-10 13:31:15 C#

未处理异常后如何继续运行?我的应用程序中有以下代码在出现未处理的异常后运行:AppDomain.CurrentDomain.UnhandledException+=newUnhandledExceptionEventHandler(CurrentDomain_UnhandledException);staticvoidCurrentDomain_UnhandledException(objectsender,UnhandledExceptionEventExceptionArgcep=evarexception(exception!=null)MessageBox.Show(exception.Message+"-"+exception.StackTrace);}但即使我捕获了未处理的异常,我的Windows移动应用程序也会关闭。如何以防止在捕获未处理的异常时关闭应用程序。我从不想关闭我的应用程序。在这种情况下,我想在不关闭应用程序的情况下打开登录表单或任何其他表单。所以我想要的是防止关闭未处理的应用程序网络关闭等异常……我不能在每个代码中使用trycatch……知道如何在网络出现故障或任何其他未处理的异常时防止关闭应用程序吗?你没有。当你收到异常时AppDomain未处理的应用程序不再处于稳定状态。你要回到哪里?当你到达这一点时,你唯一的选择就是退出。你可以合理地安排自己再次运行以确保应用程序返回,但更好的想法是在源头实际处理异常并防止它变成UnhandledException。在app.config中添加以下元素您可以而且应该使用try...catch并在可能发生异常的每种情况下处理异常。(在像Java这样的语言中,您甚至无法编译代码,直到您捕捉到被调用函数可能抛出的每个异常,或者明确声明此特定函数无法捕捉它,因此调用它的函数应该捕捉它。)如果您要尽量减少对try...catch的使用,如果满足必要的条件,您可以进行测试以防止出现一些不良情况,这样您甚至不会调用已知会抛出特定异常的函数。就像调用if(myByteArray!=null){myIPAddress=newIPAddress(myByteArray);因为那时IPAddress构造函数不会抛出ArgumentNullException。然而,在大多数情况下,这是无法做到的,尤其是在网络方面,因为您无法预测电缆是否会被切断、信号是否会丢失、数据库服务器是否会在事务处理过程中崩溃等。因此,您应该在每次连接到网络或向连接发送数据或从连接接收数据时尝试...捕获。AppDomain.CurrentDomain.UnhandledException会在任何线程上引发任何未处理的异常,但自CLR2.0起,CLR将在事件处理程序完成后强制关闭应用程序。但是,您可以通过将以下内容添加到应用程序配置文件来防止关闭:我认为您需要使用Application.ThreadException当您订阅Application.ThreadException时,未处理的异常将不会命中UnhandledException,应用程序将继续运行。以上就是C#学习教程:未处理异常后如何继续运行?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: