try:
first_number = int(input('輸入第一個數:'))
second_number = int(input('輸入第二個數:'))
# 除法運算
result = first_number / second_number
print('除法計算的結果是:', result)
except (ValueError, ZeroDivisionError) as err:
print(type(err))
print('有錯了,', err)
else:
# 如果try代碼塊中有異常則不會被執行,只有try中沒有異常的時候纔會執行
print('----------->else')
finally:
print('---------->finally')
# ZeroDivisionError
'''
raise使用+自定義異常
1. 系統異常:
ValueError TypeError IndexError FileNotFoundError ...
'''
try:
for i in range(5):
if i == 7:
# 手動拋出一個異常對象
raise ValueError('i是3的時候扔出異常aaaaa')
print('---------', i)
except Exception as err:
print(err)
'''
自定義異常:
步驟:
1.定義一個類繼承Exception
2.
'''
class NameError(Exception):
''' 名字命名錯誤,必須長度是6位'''
def __init__(self, msg):
self.msg = msg
def __str__(self):
return '[NameError]{}'.format(self.msg)
class PasswordError(Exception):
pass
name = input('請輸入姓名:')
password = input('輸入密碼:')
if len(name) != 6 or name[0].isdigit():
raise NameError('名字格式錯誤')
if len(password)<6:
raise PasswordError('密碼必須6位或者以上')
# IndexError