Python Errorと異常処理
11113 ワード
壊れた部分を知ってこそ修復できる方法!
上図に示すように、Pythonを使用しているときに発生するエラーと処理方法について説明します.構文エラー(引用符、括弧、コロン...) のPythonバージョンは低く、最新バージョンの構文が実行できない場合があります. 参照変数がない 0分エラー インデックス範囲内でない Key値(主にディック社が使用) が見つかりません.キーのエラーを回避するためにgetメソッドを使用します.
ない場合はnone値をエラーではなく出力します. モジュールクラスの無効な属性を使用すると が発生します.
参照値がないときに励起される
外部ファイルが見つからない場合は、が発生します. データ型エラー サーバーが起動しない時に発生した、まだサーバーを使用していない場合、 を学ぶ必要がある.
“It’s Easier to Ask Forgiveness than Permission” 先に同意を得るより、後で許しを請うほうが簡単だ.
エラー発生のすべてを予め設定するのではなく、異常が発生しないと仮定して符号化する.エラーが発生した場合は例外処理を行います
いったん実行(try)すると、エラーが発生した場合、直ちに処理します(除外)
Pythonが推奨する方法 "Look Before You Leap” 石橋も叩いてから行きます.
条件文(if)を使用して を符号化し、コードを実行する前に発生する可能性のあるエラー条件を決定する.
前述したように、エラーが発生した場合、プログラムはその場所で終了し、以降のコードは実行されません.
ユーザーが使用するプログラムがエラーで停止するのは大きな問題です.
例外処理を使用して、エラーによるプログラムの終了または停止を防止します. try:エラーが発生する可能性のあるコードの実行
エラーが発生した場合、ポイント以降のコード は実行されません.を除く:エラー発生時(省略可能、複数利用可能、エラー処理必須) else:エラーが発生していない場合は、実行(省略可能ですが、使用可能である必要があります) finally:エラーが発生しても無条件実行(省略) raise:必要に応じて を使用
Python Error
上図に示すように、Pythonを使用しているときに発生するエラーと処理方法について説明します.
코드를 입력하세요
1. SyntaxError
2. NameError
a, b = 10,5
print(c) # c는 사용한적 없음
3. ZeroDivisionError
a = 10
b = 0 # 영으로 나눌 수 없음.
print(a/b)
4. IndexError
x = [10, 20, 30]
print(x[3])
5. KeyError
dic = {'name':'hoon', 'color':'red'}
print(dic['age']) # age라는 key 값이 존재하지 않음.
ない場合はnone値をエラーではなく出力します.
6. AttributeError
import random
a = random.radin(0,10) # radint(o)
print(a)
7. ValueError
参照値
x = [1, 2, 3, 4, 5]
print(x.index(10)) # 10은 x에 없는 값!
8. FilenotFoundError
外部ファイルが見つからない場合は、
f = open('전화번호부.txt', 'r')
# 정확한 경로와 파일명을 입력해야 한다.
9. TypeError
x = [3]
y = (1,5)
z = "팔"
print(x+y+z) # 타입이 다르므로 에러 발생
10. ConnectionError
例外処理
例外処理ポリシー
EAFP
エラー発生のすべてを予め設定するのではなく、異常が発生しないと仮定して符号化する.エラーが発生した場合は例外処理を行います
いったん実行(try)すると、エラーが発生した場合、直ちに処理します(除外)
Pythonが推奨する方法
LBYL
条件文(if)を使用して
エラーが発生しました。
前述したように、エラーが発生した場合、プログラムはその場所で終了し、以降のコードは実行されません.
ユーザーが使用するプログラムがエラーで停止するのは大きな問題です.
例外処理を使用して、エラーによるプログラムの終了または停止を防止します.
エラーが発生した場合、ポイント以降のコード
class BigNumberError(Exception):
pass
class BigNumberError(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
try:
print("한 자리 숫자 전용 계산기입니다.")
num1 = int(input("첫 번째 숫자를 입력하세요 : "))
num2 = int(input("두 번째 숫자를 입력하세요 : "))
if num1 >= 10 or num2 >= 10:
# raise ValueError
# raise BigNumberError
raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))
print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))
except ValueError:
print("잘못된 값을 입력하셨습니다. 한 자리 숫자만 입력하세요")
except BigNumberError as err:
print("에러 발생. 한 자리 숫자만 입력하여 주세요.")
print(err)
finally:
print("계산기를 이용해 주셔서 감사합니다.")
今端末を運転しているので、エラーが発生しても怖くありません.そして問題点が分かり、修正しやすいのか…?Reference
この問題について(Python Errorと異常処理), 我々は、より多くの情報をここで見つけました https://velog.io/@soohun9909/파이썬-Error-와-예외처리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol