例子1
try: #test area function() except Exception, e: print e.message
例子2:用raise抛出一个异常
if bool_var is not True: raise Exception #other statements #...... expect Exception: do_something()
例子3:输出异常到log
import traceback import logging except Exception as e: print(e) logging.error("Error: \n%s" % traceback.format_exc()) #OR logging.error(e) #log format: #ERROR: xxx
一、try/expect
try: #... expect: ## #... finally: #...
可以没有
如果有,则一定会被执行。 finally
语句;finally
捕捉一个异常:
expect IOError: print(...)
多个expect语句,会按顺序检测错误类型:
try: print('try...') r = 10 / int('a') print('result:', r) except ValueError as e: print('ValueError:', e) except ZeroDivisionError as e: print('ZeroDivisionError:', e) finally: print('finally...') print('END')
用一个块捕捉多个异常:
except (ZeroDivisionError, NameError, TypeError): print('Errors!')
全捕捉:
try: ## expect: print('Error!')
try/expect - else:子句
如果没有错误发生,可以在except
语句块后面加一个else
,当没有错误发生时,会自动执行else
语句:
try: print('try...') r = 10 / int('2') print('result:', r) except ValueError as e: print('ValueError:', e) except ZeroDivisionError as e: print('ZeroDivisionError:', e) else: print('no error!') finally: print('finally...') print('END')