![]() |
1
6
(1) 这句话不是真的 将 (2) 毫无疑问,catch-all行为对于具有特定用途的线程非常有用。捕获失败允许线程报告失败。没有它,程序的其他部分需要处理线程消失的可能性。它还允许您登录 哪一个 |
![]() |
2
5
然后立即重新催促 .
在C++中,特别是在
|
![]() |
3
4
如果同样的例外 不是 抓到你了。。。不连贯的信息框。 拥有 消息框(并调用自定义日志,保存崩溃转储, 我认为在析构函数中也有catch(…)的合理使用。析构函数不能抛出--我的意思是,它们可以抛出,但是如果析构函数在堆栈展开过程中由于进行中的异常而抛出,那么程序将终止,因此它们不应该允许异常转义。一般来说,允许第一个异常继续解开比终止程序要好。
|
![]() |
4
3
除了其他海报已经说过的,我想提一个来自C++标准的好观点:
这意味着main()和每个线程函数 必须 |
![]() |
5
2
|
![]() |
6
2
首先是我的整体应用程序安全性。在抛出不是从
现在,它只是在那里“以防万一”,而不是 真正地 第二种用法可能是在析构函数或其他一些函数中,这些函数在允许异常传播之前需要进行手动管理。这也不是一个真正的理由,因为事情应该用RAII安全地清理自己。但我可能因为一些我想不起来的原因用过一两次,我也看不出有什么理由再这样做。 |
![]() |
7
1
catch(…)允许您编写代码,在其中您可以合法地声明,即使您无法长期完全控制代码所依赖的子模块,您的代码也不会崩溃。你的声明等同于声明这个语义不能被使用,除非是作为一种滥用的手段。也许是这样,但在这个问题上,军事规格可能与您有所不同。 |
![]() |
8
-2
另一种选择——让堆栈对象“拥有”所有东西——通常代码更多,可读性和可维护性更低。平台API通常是C语言的,并且不能方便地捆绑在一起。 从稳定性的角度来看,对于您无法控制或根本不信任的插件代码,它也很有用。这不会阻止他们崩溃,但可能会让事情变得更理智一点。
|
|
M.Jane · 组织和编写异常类的正确方法 6 年前 |
![]() |
shubham daharwal · java中的内部捕获异常 6 年前 |
![]() |
Jon · 如何在不需要任何操作的情况下处理Python异常 6 年前 |
![]() |
felix1415 · C++捕获(标准::异常和e)与捕获(…) 6 年前 |
![]() |
k0pernikus · 如何在scala中键入可能引发异常的函数? 6 年前 |