Giriş
Şu satırı dahil ederiz.
#include <stdexcept>
std::runtime_error yapabilecek bir şey kalmamışsa atılır. Örneğin kullanıcı çalışırken CD'yi çıkarırsa atılabilir.
Constructor - std::string
Şöyle yaparız.
throw std::runtime_error ("Could not create a thread");
Şöyle yaparız.std::stringstream ss;
ss << "The access index is out of range. Index = "
<< index
<< ", length: "
<< size
<< ".";
throw std::runtime_error {ss.str()};
Constructor - const char* Teklif
std::runtime_error şu anda std::string ile yaratılıyor. Bu exception için const char* alan constructor metodlar teklif edildi. Eğer kabul edilirse metod imzası şöyle olacak.
std::runtime_error::runtime_error (const char* what_arg);
Kalıtım - const char*
Şöyle yaparız.
#include <stdexcept>
class file_format_error : public std::runtime_error {
public:
explicit file_format_error(const char* err_msg)
:
std::runtime_error{err_msg}
{}
};
Kalıtım - std::string
Şöyle yaparız.
Şöyle yaparız.
class MyException : public std::runtime_error
{
public:
// Error message constructor.
explicit MyException(const std::string err);
// Destructor
virtual ~MyException() throw();
};
MyException::MyException(std::string err):
std::runtime_error (err)
{
}
MyException::~MyException() throw()
{
}