When compiler meets an exception that is from STL like std::out_of_range
:
int main(int argc, char *argv[]) {
throw std::out_of_range("There is an exception!");
}
the console will show the message :
libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: There is an exception!
So I wrote an exception class :
class Exception {
protected:
const char *msg;
public:
Exception(const char *msg) noexcept : msg(msg) {}
Exception(const string &msg) noexcept : msg(msg.c_str()) {}
const char *what() const noexcept {
return this->msg;
}
};
However, throwing Exception
will not get any information :
int main(int argc, char *argv[]) {
throw Exception("There is an exception!");
}
Console message :
libc++abi.dylib: terminating with uncaught exception of type Exception
Is there any way making console show :
libc++abi.dylib: terminating with uncaught exception of type Exception: There is an exception!
Compiler : Apple LLVM version 9.1.0 (clang-902.0.39.2)
Aucun commentaire:
Enregistrer un commentaire