Python🐍 : 例外処理


例外処理は、エラーが発生したときにスクリプトを実行し続け、実行を中断しないようにします.
もっと詳しく

try-except


この構文は関数ではないため、内部で作成された変数は構文以外でも使用できます.
try:
    #문제가 발생할 가능성이 있는 부분
    print(2/0)
#검출할 에러를 지정
except ZeroDivisionError as e:#보통 예외(exception)의 e로 이름을 짔는다
    print("Error!:"+str(e))

#지정한 에러 외의 상황을 처리
except:
    print("Unknown")

#else : 예외가 발생하지 않았을때 실행되는 부분
else: 
    print("No Error!")
    
#finally : 예외처리에서 마지막에 무조건 실행되는 내용
finally:
    print("working fine!")

#여러개의 except에 해당하는 에러가 발생할 경우 더 높은 계층(부모)부터 처리된다

異常をきたす🚧


予期せぬ事態が発生した場合、開発者が故意にエラーを起こし、プログラムの実行を停止する可能性があります.
  • raise例外(「エラーメッセージ」)
  • try:
        val = int(input("Enter num: "))
        if(val>5):
            raise ValueError
            #raise ValueError('커스텀 에러 메세지') : 원하는 에러 메세지를 설정할 수 있다
    except ValueError:
        print("Error!")
        raise #이미 발생한 에러를 다시 발생시켜 상위 코드 블록으로 넘겨 처리하게한다
    
    #try-except 구문이 아닌 곳에서 raise를 하면 계속 위로 거슬러가며 except를 찾는다
    #만약 없다면 코드 실행이 중지되고 에러가 발생한다
  • assert
  • 条件式を指定すると、エラー面エラーが発生します.assert 조건식 assert 조건식, 에러메시지デバッグモードでのみ実行
    (デバッグを無効にするには、「python-oスクリプトファイル.py」にファイルを実行するだけです)
    assert 1 % 3 == 0, '3의 배수가 아닙니다.' 

    ユーザ異常処理


    ユーザーが自分で定義してエラーを使用する方法.継承Exception클래스作成
    class CustomError(Exception): #Exception클래스를 상속
        def __init__(self, msg):#생성자에 매개변수를 추가해 원하는 값을 받아올수도 있다.
            self.msg = msg
    
        #메세지 출력을 위한
        def __str__(self):
            return self.msg
    
    # CustomError("Error!") - 원하는 메세지 입력

    コメントとソース


    https://www.youtube.com/watch?v=kWiCuklohdY&ab_channel=%EB%82%98%EB%8F%84%EC%BD%94%EB%94%A9~~
    https://dojang.io/mod/page/view.php?id=2164