c# – 从导致异常的行继续尝试/捕获异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 从导致异常的行继续尝试/捕获异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1273字,纯文字阅读大概需要2分钟。
内容图文
![c# – 从导致异常的行继续尝试/捕获异常](/upload/InfoBanner/zyjiaocheng/765/787f7f02f5c342fa93a03e8618e8f1b7.jpg)
抛出异常时,如何捕获它然后从导致错误的行开始继续执行?
编辑:
我们的程序与Indesign Server进行通信,Indesign Server一直崩溃并抛出随机的COM相关错误(这些错误与服务器本身的错误有关). Indesign Server也需要很长时间来处理命令,因此当它崩溃时,我们希望避免重新启动执行.相反,我们希望从导致异常的行继续.程序中的任何行都可能导致异常.所以从技术上讲,我们不能使用循环.
解决方法:
When an exception is thrown, how can I catch it and then continue execution starting from the line that caused the error? (Not the next line; retry the line that caused the exception.)
不要试图这样做.你正在从错误的方向接近这个问题.
问题是你有一个不可靠的子系统.您有一个处理该不可靠子系统的所需策略,即重试该操作直到成功为止.如果是这种情况,那么不要将该逻辑放在使用子系统的业务线代码中.业务线代码应该是关于业务逻辑的,而不是关于您选择处理片状子系统的机制.将机制隔离到特定类,使不可靠的子系统成为可靠的子系统.
也就是说,构建一个与不可靠子系统具有相同接口的代理类,并将重试逻辑隔离到该代理类中.然后,业务线代码可以使用代理类作为可靠的子系统.
也就是说,“重试它直到它运作”的政策可能是一个糟糕的政策.如果子系统真正被打破并且不仅仅是以某种短暂的方式存在片状,那么“重试直到它工作”意味着“永远等待”,并且大多数用户不喜欢永远等待.例如,如果异常是路由器被拔出而不是某些瞬态条件的结果,则坐在循环中直到有人将路由器插回来似乎是个坏主意.
内容总结
以上是互联网集市为您收集整理的c# – 从导致异常的行继续尝试/捕获异常全部内容,希望文章能够帮你解决c# – 从导致异常的行继续尝试/捕获异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。