#include <iostream>
#include <exception>
class BadUrl:public std::exception
{
const char* what() const noexcept {return "url is not correct!\n";}
};
struct Page
{
std::string data;
};
Page download(const std::string& address)
{
if(address.size()==0)
throw BadUrl();
Page page;
page.data="blah blah...";
return page;
}
int main()
{
try{//code haye dakhele in block check mishan
download("");
}
//khat zir exception hayee ke az class std::exception ers bordan ro migire
catch(std::exception& exc){
std::cout<< exc.what();//url is not correct chap mishe
}
//dar soorat bargardoondan exception ee
//ke az std::exception ers naborde bashe
//khat zir ejra mishe
catch(...){
std::cout<<"undefined error...";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZXhjZXB0aW9uPgoKY2xhc3MgQmFkVXJsOnB1YmxpYyBzdGQ6OmV4Y2VwdGlvbgp7CiAgICBjb25zdCBjaGFyKiB3aGF0KCkgY29uc3Qgbm9leGNlcHQge3JldHVybiAidXJsIGlzIG5vdCBjb3JyZWN0IVxuIjt9Cn07CgpzdHJ1Y3QgUGFnZQp7CiAgICBzdGQ6OnN0cmluZyBkYXRhOwp9OwoKUGFnZSBkb3dubG9hZChjb25zdCBzdGQ6OnN0cmluZyYgYWRkcmVzcykKewogICAgaWYoYWRkcmVzcy5zaXplKCk9PTApCiAgICAgICAgdGhyb3cgQmFkVXJsKCk7CgogICAgUGFnZSBwYWdlOwogICAgcGFnZS5kYXRhPSJibGFoIGJsYWguLi4iOwogICAgcmV0dXJuIHBhZ2U7Cn0KCgppbnQgbWFpbigpCnsKICAgIHRyeXsvL2NvZGUgaGF5ZSBkYWtoZWxlIGluIGJsb2NrIGNoZWNrIG1pc2hhbgogICAgICAgIGRvd25sb2FkKCIiKTsKICAgIH0KICAgIC8va2hhdCB6aXIgZXhjZXB0aW9uIGhheWVlIGtlIGF6IGNsYXNzIHN0ZDo6ZXhjZXB0aW9uIGVycyBib3JkYW4gcm8gbWlnaXJlCiAgICBjYXRjaChzdGQ6OmV4Y2VwdGlvbiYgZXhjKXsKICAgICAgICBzdGQ6OmNvdXQ8PCBleGMud2hhdCgpOy8vdXJsIGlzIG5vdCBjb3JyZWN0IGNoYXAgbWlzaGUKICAgIH0KICAgIC8vZGFyIHNvb3JhdCBiYXJnYXJkb29uZGFuIGV4Y2VwdGlvbiBlZQogICAgLy9rZSBheiBzdGQ6OmV4Y2VwdGlvbiBlcnMgbmFib3JkZSBiYXNoZQogICAgLy9raGF0IHppciBlanJhIG1pc2hlCiAgICBjYXRjaCguLi4pewogICAgICAgIHN0ZDo6Y291dDw8InVuZGVmaW5lZCBlcnJvci4uLiI7CiAgICB9Cgp9Cgo=