異常3


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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章