gpt4 book ai didi

c++ - 我应该抛出什么类型的异常?

转载 作者:IT老高 更新时间:2023-10-28 22:00:52 29 4
gpt4 key购买 nike

在浏览了一些关于异常处理的链接( 123 )后,我知道 C++ 程序几乎可以抛出任何异常(intchar*stringexception 类)。我知道 std::exception 是程序抛出的标准异常的基类。但是,我正在尝试设计一个 try...catch block :

try
{
MyFunc();
}
catch (certain exceptions)
{
// deal with the exception accordingly
}
catch (the rest of the exceptions)
{
// deal with these accordingly
}

MyFunc() 包含以下内容:

void MyFunc()
{
...
if (certain condition is true) throw exception;
...
}

问题在于,在 MyFunc 函数的那部分,我不确定应该抛出什么类型的异常。为了通过实现我自己的异常类来保持代码干净,我不知道什么是实现此类异常类的好方法。

最佳答案

你可以从 std::exception 派生你自己的类, 这样就有了统一处理异常的方法。

如果这看起来有点矫枉过正,你可以抛出 std::logic_error或供应用程序使用的其他标准异常类型之一。

您也可以将这些用作您自己的更具体异常的基类:这样可以节省一些工作,因为它们会为您实现 what 方法。

请注意,深层异常层次结构可能无法使用,因为您基本上是在提前猜测如何对错误进行分类,而您的客户可能不同意。

关于c++ - 我应该抛出什么类型的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1157591/

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