gpt4 book ai didi

c++ - 有不同的异常类

转载 作者:行者123 更新时间:2023-11-27 23:14:21 24 4
gpt4 key购买 nike

我有一个关于异常的简单问题。为什么人们经常为每种类型的异常使用单独的类,是因为我们可能希望以不同的方式处理不同的异常吗? (例如,与仅捕获“...”相比)。

最佳答案

异常对象不仅仅用于指示发生了什么,所以 catch (...) 将是使用异常功能的一种非常原始的方式。

每个异常对象通常会携带一个“有效载荷”:从异常发生的地方到处理的地方的信息。当一个异常飞上展开的调用堆栈时,沿途的函数可能会拦截它,用额外的信息丰富它,然后将它发送到更远的地方。程序中不同的功能模块会向异常处理器发送完全不同的信息,这就是为什么你需要不同的异常类来携带这些信息。

例如,解析器异常可能携带有关行号和语法错误性质的信息。文件系统异常可能携带有关文件名和错误代码的信息。动态内存异常可能携带有关特定内存操作和内存块大小的信息。等等。要存储和携带那些完全不相关的数据集,您通常会定义不同的异常类型。

关于c++ - 有不同的异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17520247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com