C++异常
异常机制
C++异常是对程序运行过程中发生的异常情况的一种响应。
异常提供了将控制权从程序的一个部分传递到另一个部分的途径。
对异常的处理有3个组成部分:
1.引发异常
2.使用处理程序捕获异常
3.使用try块
throw语句实际上是跳转,即命令程序跳到另一条语句。throw关键字表示引发异常,紧随其后的值(例如字符串或对象)指出了异常的特征。
程序使用异常处理程序(exception handler)来捕获异常,异常处理程序位于要处理问题的程序中,catch关键字表示捕获异常。
处理程序以关键字catch开头,随后是位于括号中的类型声明,它指出了异常处理程序要响应的异常类型;然后是一个用花括号括起的代码块,指出要采取的措施
exception类
示例1
try {
QString pathA = fileAEdit->text();
QString pathB = fileBEdit->text();
QFileInfo fileA(pathA);
QFileInfo fileB(pathB);
if(fileA.isFile() && fileB.isFile())
{
QMessageBox messageBox;
messageBox.setIcon(QMessageBox::Icon::Critical);
messageBox.setText(QString("File A(1%) and File B(%2) exist").arg(pathA).arg(pathB));
messageBox.exec();
this->close();
}
else
{
if(!fileA.isFile())
{
throw QString("FileA path:%1 不存在!").arg(fileA.path());
}
if(!fileA.isFile())
{
throw QString("FileB path:%1 不存在!").arg(fileB.path());
}
}
} catch (QString s) {
QMessageBox messageBox;
messageBox.setIcon(QMessageBox::Icon::Critical);
messageBox.setText(s);
messageBox.exec();
}
运行结果: