Python异常处理实验

try:
    print('try')
    r=10/0#除零错误
    print('result',r)
except ZeroDivisionError as e:#假如上面没有#错误就执行该语句
    print('except',e)#获取错误提示
finally:
    print('finally')#无论如何都会执行,同时释放内存
try
except division by zero
finally
try:
    print('try')
    r=10/0
except ZeroDivisionError as e:
    print('except',e)
else:
    print('result',r)#计入try中没有错误就执行该语句
finally:
    print('finally')

try
except division by zero
finally
raise ValueError('This is a ValueError !')
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-26-dfda0edb5140> in <module>()
----> 1 raise ValueError('This is a ValueError !')


ValueError: This is a ValueError !
class NotIntError(Exception):#定义NotIntError错误类型
    def __init__(self,error):
        self.error=error#获取属性:提示错误
raise NotIntError('This is not an Int value!')
---------------------------------------------------------------------------

NotIntError                               Traceback (most recent call last)

<ipython-input-28-fd16324046e5> in <module>()
----> 1 raise NotIntError('This is not an Int value!')


NotIntError: This is not an Int value!
a = [1,2,'',4,5,'a',[1,2,3]]
for ele in a:
    try:
        if type(ele) !=int:#如果元素不是整形就抛出错误
            raise NotIntError('This is not an Int value!')
    except NotIntError as e:
        print(e.error)
    else:
        print(ele)
1
2
This is not an Int value!
4
5
This is not an Int value!
This is not an Int value!
assert 1+2==5,print('1+2不等于5!')
print('1+2等于',1+2)
1+2不等于5!



---------------------------------------------------------------------------

AssertionError                            Traceback (most recent call last)

<ipython-input-30-ffaf74e3d93b> in <module>()
----> 1 assert 1+2==5,print('1+2不等于5!')
      2 print('1+2等于',1+2)


AssertionError: None
import logging#导入错误日志包

def foo(num):
    try:
        return 100/int(num)
    except Exception as e:
        logging.exception(e)
        
foo(0)
print('End')#即使出错也不会停止运行
ERROR:root:division by zero
Traceback (most recent call last):
  File "<ipython-input-31-984915d67822>", line 5, in foo
    return 100/int(num)
ZeroDivisionError: division by zero


End
import logging#导入错误日志包

def foo(num):
    try:
        return 100/int(num)
    except Exception as e:
        logging.exception(e)
        
foo(0)
print('END')#即使出错也不会停止运行
ERROR:root:division by zero
Traceback (most recent call last):
  File "<ipython-input-32-49dea5892d89>", line 5, in foo
    return 100/int(num)
ZeroDivisionError: division by zero


END
import logging

logging.basicConfig(level=logging.INFO)

def foo(num):
    try:
        return 100/int(num)
    except Exception as e:
        logging.debug(e)
        logging.info(e)
        logging.warning(e)
        logging.error(e)
        logging.critical(e)
        
foo(0)
print('End')
WARNING:root:division by zero
ERROR:root:division by zero
CRITICAL:root:division by zero


End
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值