18 Nisan 2017 Salı

std::runtime_error Sınıfı

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.
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()
{
}

Hiç yorum yok:

Yorum Gönder