6
Tür adını istisnalar kullanarak yazdırmaya çalışıyorum, ancak programım bunun istisnayı yakalama gibi görünmüyor ve bunun yerine varsayılan sonlandırma işlevini çağırıyor gibi görünüyor. Neyi özledim?Bu program neden bir istisna yakalayamıyor?
#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());
}
}