Giriş
Şu satırı dahil ederiz.
Açıklaması şöyle.
Şu satırı dahil ederiz.
#include <boost/exception/all.hpp>
BOOST_THROW_EXCEPTION MacrosuAçıklaması şöyle.
Note that BOOST_THROW_EXCEPTION automatically adds boost::exception as a base class for the thrown type.
Örnek
Şöyle yaparız.
Elimizde kendi exception sınıfımız varsa fırlatmak için şöyle yaparız.
Elimizde şöyle bir kod olsun. Bu kodun niçin lazım olduğunu anlamadım.
Şöyle yaparız.
BOOST_THROW_EXCEPTION(std::runtime_error("hello exception"));
Yakalamak için şöyle yaparız.catch (const std::exception& ex)
ÖrnekElimizde kendi exception sınıfımız varsa fırlatmak için şöyle yaparız.
struct allocation_failed : public std::exception
{
const char *what() const noexcept { return "allocation failed"; }
};
BOOST_THROW_EXCEPTION(allocation_failed{});
boost::exception SınıfıElimizde şöyle bir kod olsun. Bu kodun niçin lazım olduğunu anlamadım.
typedef boost::error_info<struct tag_errmsg, std::string> errmsg_info;
boost::exception'ı string'e çevirmek için şöyle yaparız.catch (boost::exception &e)
{
std::cerr << *boost::get_error_info<errmsg_info>(e);
if ( allocation_failed* af = dynamic_cast<allocation_failed*>(&e) )
{
std::cerr << af->what() << std::endl; // redundant
}
}
Hiç yorum yok:
Yorum Gönder