在python中、如果异常并未被处理或捕捉_Python中处理unchecked未捕获异常实例

Talk Is Cheap

和Java一样,python也提供了对于checked exception和unchecked exception. 对于checked exception,我们通常使用try except可以显示解决,对于unchecked 异常,其实也是提供回调或者是钩子来帮助我们处理的,我们可以在钩子里面记录崩溃栈追踪或者发送崩溃数据.

下面代码可以实现python unchecked exception回调,并输出日志信息.

Show Me The Code

#!/usr/bin/env python

# coding=utf-8

import os, sys

import logging

logger = logging.getLogger(__name__)

handler = logging.StreamHandler(stream=sys.stdout)

logger.addHandler(handler)

def handle_exception(exc_type, exc_value, exc_traceback):

if issubclass(exc_type, KeyboardInterrupt):

sys.__excepthook__(exc_type, exc_value, exc_traceback)

return

logger.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))

sys.excepthook = handle_exception

if __name__ == "__main__":

raise RuntimeError("Test unhandled Exception")

相关解释

1.上述忽略处理终端下键盘按Ctrl + C 终止异常.

2.上述使用python的日志管理模块输出格式化的异常信息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值