什么是异常,在程序中为什么抛异常?

一、异常,抛异常
通俗的来讲,异常就是程序执行过程中发生的错误,有时候发生错误,整个程序可能会全部终止。
这时,就需要抛异常的方法来实现当次执行的程序中断,而不是整个程序全部终止

二、几个常见异常
1、requests.exceptions.ConnectionError #未知的服务器
2、requests.exceptions.ConnectTimeout #连接\读取超时.
3、requests.exceptions.ProxyError #代理连接不上

三、抛异常的好处
1、保证程序健壮性。
2、对于有问题数据进行收集,做好留痕工作。

在 C++ ,assert 是一种宏定义,其目的是在代码判断所给定的条件是否为真,如果为假,则终止程序的执行。如果想要将 assert 的行为修改为异常,可以使用以下两种方法: 1.使用自定义宏定义 可以使用自定义宏定义来将 assert 的行为修改为异常。下面是一个示例代码: ```c++ #include <stdexcept> #include <iostream> // 将 assert 的行为改为出 runtime_error 异常 #define assert(expression) \ if (!(expression)) \ throw std::runtime_error("Assertion failed: " #expression); int main() { int x = 10; int y = 5; assert(x > y); std::cout << "x > y" << std::endl; return 0; } ``` 在上面的代码,我们使用了自定义宏定义将 assert 的行为修改为出 runtime_error 异常。在执行 assert(x > y) 的时候,如果 x > y 不成立,将会出一个 runtime_error 异常程序的执行也会随之终止。 2.使用断言包装函数 另一种将 assert 的行为修改为异常的方法是使用一个断言包装函数,这个函数将会接受一个表达式作为参数,如果表达式不成立,则将会出一个异常。下面是一个示例代码: ```c++ #include <stdexcept> #include <iostream> void assert_impl(bool expression, const char* message) { if (!expression) { throw std::runtime_error(message); } } #define assert(expression) assert_impl(expression, "Assertion failed: " #expression) int main() { int x = 10; int y = 5; assert(x > y); std::cout << "x > y" << std::endl; return 0; } ``` 在上面的代码,我们定义了一个断言包装函数 assert_impl,这个函数将会接受一个表达式和一个消息作为参数,如果表达式不成立,则将会出一个带有消息的 runtime_error 异常。然后,我们重新定义了 assert 宏,将它替换为调用 assert_impl 函数。这样,在执行 assert(x > y) 的时候,如果 x > y 不成立,将会出一个带有消息的 runtime_error 异常程序的执行也会随之终止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值