在C中,我试图捕获所有类型的异常(如C#中的catch(异常)).怎么做而且,怎样才能捕捉到零除异议?
解决方法
catch (...) { // Handle exceptions not covered. }
重要注意事项:
>一个更好的方法是捕获特定类型的异常,您可以从中实际恢复,而不是所有可能的异常.
catch(…)也会捕获某些严重的系统级别的异常(根据编译器的不同而不同),您将无法从中可靠地恢复.以这种方式抓住他们,然后吞咽并继续,可能会导致您的程序中更严重的问题.
>根据你的上下文,使用catch(…)可以接受,提供异常被重新抛出.在这种情况下,您记录所有有用的本地状态信息,然后重新抛出异常以允许它向上传播.但是,如果您选择这条路线,您应该在RAII pattern上阅读.