3
我想在Qt中創建自己的異常類。這是我第一次這樣做,我很困惑如何把我的豁免放在主要函數中。在QT中創建我自己的異常並在函數中拋出異常
我有什麼目前:
myExcption.h
#ifndef MYEXCEPTION_H
#define MYEXCEPTION_H
#include <qtconcurrentexception.h>
#include <QDebug>
class MyException: public QtConcurrent::Exception
{
public:
void raise() const {qDebug() << "\nException: "; throw *this;}
};
#endif // MYEXCEPTION_H
現在目前我怎麼扔豁免是這樣的:
myFuction.h
void Commands(QString Command_in, MyException &wrongInput);
myFunction.cpp
void Command(QString Command_in, MyException &wrongInput)
{
if(Command_in != "some string")
{
wrongInput.raise();
}
}
的main.cpp
String s = "some String";
MyException wrongString;
try
{
Command(s, wrongString);
}
catch(MyException &wrongString)
{
qDebut << "String invalid";
}
現在這個工作,但我覺得我不應該在我的例外每一個引用傳遞功能。我有什麼選擇?這是我覺得我應該能夠做到的,但我不知道該怎麼做。
myFunction.cpp
void Command(QString Command_in)
{
if(Command_in != "some string")
{
throw myException;
}
}
的main.cpp
QString s = "some String";
try
{
Command(s);
}
catch(MyException &wrongString)
{
qDebut << "String invalid";
}
這可能嗎?