java 一切可 catch 住,最重要的原因是 java 的应用场景单一,一般是拿来写 web 服务用,cpp 很少用于这个场景。
这个场景,java 社区一般使用线程模型,来一个请求就启动一个线程,所有业务逻辑都在这个线程里面。只要在开始服务请求的时候 try 一下,结束时 catch 一下,所有的异常就被捕获了。
看看 cpp 社区,线程?搞笑,用线程怎么高并发。传统的 c/cpp 网络编程是回调又回调,心智负担非常大。异常也无从捕获,因为入口点非常多。
容我带货一下。。cpp 怎么办?用协程啊!大家可以看看我搞的那个
https://qtng.org/,我在启动协程的时候,try catch 了协程入口函数。因此,当一个协程业务逻辑抛出异常的话,最多就是这个协程挂掉,其它协程没事继续服务请求。当然,如果是内存异常就搞不定了——多用智能指针吧。
【 在 stub (stub) 的大作中提到: 】
: 一个例子,Java中几乎一切可catch,包括0作除数这种。 这样,写业务逻辑,就可以放心大胆的写,而不用担心异常case导致服务出问题。而cpp一不小心就core了。
--
修改:hgoldfish FROM 112.47.122.*
FROM 112.47.122.*