最近,我参加了Jeffrey Richter关于.NET的培训课程,他提到了一种“死亡很棒”的编码策略。也就是说,即使在程序或事件循环的根部,也不要写"catch (Exception )“。如果抛出了一些未处理的异常,就让进程终止。
我不确定这样做对不对。就我个人而言,我更喜欢在执行的顶层使用"try {...} catch(Exception ex) {log and try to recover}“来包装。实际上,如果从asXx抛出任何异常,ASP.NET都不会死。如果它确实死于异常,那么一个银弹请求就可以使整个服务静默。
你认为如何?
发布于 2009-02-23 04:59:30
如果你不能很好地处理这个问题--如果它只是以某种形式拒绝错误的输入(这包括你试图从磁盘或web读取的东西),你可能不能--那么你应该死。除非你100%确定你可以安全地继续,否则不要。
然而,我不会简单地让一个异常过去。捕捉它并收集尽可能多的信息。如果您的程序操作了某种类型的文档,请将其保存为新名称--它可能已损坏,您不希望覆盖原始文档。
https://stackoverflow.com/questions/576532
复制相似问题