我开始用C++写一些代码,我有一个简单的任务管理器程序我正在写做实验这个简单的类方法:C++良好的错误处理方法
void Task::setText(string text)
{
if(text.length() > MIN_LENGTH)
{
this->text = text;
}
}
正如你所看到的,如果该方法的长度高于在我已展示的代码上方定义的MIN_LENGHT
变量,则此方法将类text
属性设置为传递给该方法的属性。所以我必须做一些事情,如果条件不传递给方法的字符串评估为true。
在我购买的C++书籍中,错误处理没有解释,而是它只是在全球各地使用assert
。如果表达式为false,断言程序会中止程序,并将其作为输入验证,我寻找更好的方法。
该搜索引导我到C++ exceptions。在那里它解释了如何创建一个继承自exception
的类来创建异常。
良好的面向对象操作规范说每个类都应该独立于程序中的其他类。那么我应该在哪里创建这个异常类?在同一个头文件中,我定义了我的Task类?或者应该在task.cpp
中定义每个类的方法?
也许这是一个愚蠢的问题,但只是想要安全并从一开始就遵循一个好的软件架构实践。
“我没有做你所要求的”与“你搞砸了”不一样。传递的字符串太短,可能会终止程序?您首先必须决定在这种情况下呼叫方应该做些什么。然后你可以考虑如何传输必要的信息。 –