1. 已知文件异常,如ZeroDivisionError:
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
2. 已知多个异常,异常按照顺序抛出:
num1 = input('数字一:')
num2 = input('数字二:')
try:
print(int(num1)/int(num2))
except ZeroDivisionError:
print("You can't divide by zero!")
except ValueError:
print('输入的值的类型不对!')
3. 捕获异常的具体信息:
num1 = input('数字一:')
num2 = input('数字二:')
try:
print(int(num1)/int(num2))
except ZeroDivisionError as e: # 取别名
print("You can't divide by zero!")
print(e) # 打印异常具体信息
except ValueError as v:
print('输入的值的类型不对!')
print(v)
4. 不知道异常时,使用异常父类
num1 = input('数字一:')
num2 = input('数字二:')
try:
print(int(num1)/int(num2))
except Exception as e: #Exception 父类
print(e)
finally:
print('游戏结束')
5. 不管是否有异常,都要执行一段代码 finally
num1 = input('数字一:')
num2 = input('数字二:')
try:
print(int(num1) / int(num2))
finally:
print('游戏结束!')
6. 引用 traceback : import traceback
import traceback
num1 = input('数字一:')
num2 = input('数字二:')
try:
print(int(num1) / int(num2))
except :
print(traceback.format_exc())
finally:
print('游戏结束!')
7. 自定义异常
import traceback
num1 = input('数字一:')
num2 = input('数字二:')
class NameIsTooLong(Exception):
try :
print(int(num1) / int(num2))
except :
print(traceback.format_exc())
finally:
print('感谢您的参与!')