您的位置首页百科问答

为什么不建议用 try catch?

为什么不建议用 try catch?

的有关信息介绍如下:

为什么不建议用 try catch?

有什么资料说不建议用 try catch ? 我认为 try catch 很常用, 而且有些时候必须要用...当然 catch 住了不作任何补救措施和任何操作是要避免的...

有朋友说建议不捕获异常直接让 程序 duang 一下停掉, 这个要分异常类型的, 像 Java 分 check exception 和 unchecked exception, nodejs 分 operational errors 和 programmer errors, 还要结合场景看异常是否可以补救 等...

比如有些异常是可以补救的, 如连接某个服务器, 连接失败的话, 捕获住异常可以隔几秒再尝试连接.再比如 nodejs, 如果是属性名拼错这种明显的bug, 造成各种 undefined ,null 这种异常, 是不建议 try catch 的, 因为这是明显的 bug, 没办法补救, 补救了反而会造成错误的系统状态, 这种情况让系统当机并修复bug更合适.

再比如 java 中的 try catch, 你可以捕获低层异常转译成高层异常, 简单说就是转译成信息更详细或更容易让客户端理解的高层异常

当然骂异常机制的人也是有的, 比如 Java 的 checked exception 就被人骂过, 编译器强制要求必须 try catch, 而且还是成坨成坨的....也有设计不合理的地方, 但我认为 try catch 还是很常用的.

------------------------

nodejs 的异常稍有了解, 确实 try catch 用的场景不多, 不过有个重要的原因是 nodejs 太多异步太多 callback, 异步调用的情况下 try catch 再 throw 是没效果的, 所以 nodejs 还有另外两种传递异常的方式 : 1. 利用 callback 2. 利用 EventEmitter 这种方式

但像 Java 以及其它部分语言.... 除了 try catch throw 还有什么办法补救异常和传播异常???