6
Tôi đang cố gắng in tên loại bằng cách sử dụng ngoại lệ, nhưng chương trình của tôi thậm chí không có vẻ để bắt ngoại lệ và thay vào đó dường như gọi hàm kết thúc mặc định. Tôi đã bỏ lỡ điều gì?Tại sao chương trình này không bắt được ngoại lệ?
#include <cstdio>
#include <exception>
#include <typeinfo>
namespace Error
{
template<typename T>
class Blah : std::exception
{
virtual const char* what() const throw()
{
return typeid(T).name();
}
};
}
void blah() {
throw Error::Blah<int*********>();
}
int main()
{
try
{
blah();
}
catch (std::exception& e)
{
std::puts(e.what());
}
}