我开始用C++编写一些代码,我从一个简单的任务管理器程序中得到了这个简单的类方法,我正在编写一个实验:
void Task::setText(string text) { if(text.length() > MIN_LENGTH) { this->text = text; } }
如您所见,此方法将class text
属性设置为传递给方法的属性,如果它的长度高于MIN_LENGHT
我所显示的代码上方定义的变量.因此,如果传递给方法的字符串的条件没有评估为true,我必须做一些事情.
在我买的C++书中,没有解释错误处理,而只是assert
在任何地方使用它.因为如果表达式为false,断言只是中止程序,并且这是作为输入验证,我寻找更好的方法.
这次搜索引发了我对C++的例外.它解释了如何通过创建继承的类来创建异常exception
.
良好的OOP实践表明,每个班级应该独立于该计划中的其他班级.那么我应该在哪里创建我创建的这个异常类?在同一个头文件中我定义了我的Task类?或者它应该在task.cpp
我定义类的每个方法的地方?
也许这是一个愚蠢的问题,但只是想要保证安全,并从一开始就遵循良好的软件架构实践.