Pythonã®äŸå€åŠçïŒtry-exceptïŒã«ã€ããŠè§£èª¬ããŸãïŒ
ã©ããªããã°ã©ã ã§ãäºæããªããšã©ãŒãçºçããå¯èœæ§ããããŸãããããããšã©ãŒã«å¯ŸåŠããããã«ããäŸå€åŠçããšåŒã°ããä»çµã¿ããããPythonã§ã¯try-exceptæãæäŸãããŠããŸããæ¬èšäºã§ã¯ãPythonã®try-exceptæã«ã€ããŠè§£èª¬ããŸããããããäŸå€ãšã¯ã»ã»
äŸå€ïŒExceptionïŒã¯ãããã°ã©ã ã®å®è¡äžã«çºçããäºæããªããšã©ãŒã®ããšã§ãã
äŸãã°ããŒããé€ç®ïŒå²ãç®ïŒããã³ãŒãããã£ããšããŸãã
x = 10 / 0
print(x)
ãã®ã³ãŒããå®è¡ãããšã
ZeroDivisionError: division by zero
ã®äŸå€ãšã©ãŒïŒãŒãã¯é€ç®ã§ããªãïŒãçºçããŸãã
ãã®ããã«äŸå€ãšã©ãŒãçºçãããšããã®æç¹ã§åŠçãçµäºããŠããŸããŸãã
try-exceptæã®åºæ¬æ§æ
Pythonã§ã¯äŸå€åŠçãè¡ãããã«ãtry-exceptæã䜿ãããšãå€ãã§ãã
try-exceptæã®åºæ¬æ§æã¯æ¬¡ã®éãã§ãã
try:
# ãšã©ãŒãçºçããå¯èœæ§ã®ããåŠç
except ãšã©ãŒã®çš®é¡:
# äŸå€ãçºçãããšãã®åŠç
ã§ã¯ãå®éã«å ã»ã©ã®ãŒãé€ç®ã§çºçããäŸå€ãšã©ãŒã®åŠçãæžããŠã¿ãŸãããã
try:
x = 10 / 0
except ZeroDivisionError:
print("ãŒãã§é€ç®ããããšã¯ã§ããŸããã")
äžèšã®ã³ãŒããå®è¡ãããšãå ã»ã©ã®ããã«ãZeroDivisionErrorãã®äŸå€ãšã©ãŒã¡ãã»ãŒãžã§ã¯ãªããããŒãã§é€ç®ããããšã¯ã§ããŸãããããšãããå®è£ è åŽãæå³ãããšã©ãŒã¡ãã»ãŒãžãè¿åŽããããšãã§ããŸãã
è€æ°ã®äŸå€ãåŠçãã
1ã€ã®tryãããã¯å ã«ãè€æ°ã®ç°ãªãäŸå€ãåŠçããããšãã§ããŸãã
äŸãã°ãäžèšã®ãããªã³ãŒãããããšããŸãã
try:
# ãšã©ãŒãçºçããå¯èœæ§ã®ããåŠç
except ZeroDivisionError:
print("ãŒãã§é€ç®ããããšã¯ã§ããŸããã")
except FileNotFoundError:
print("ãã¡ã€ã«ãèŠã€ãããŸããã§ããã")
except Exception as e:
print(f"äºæããªããšã©ãŒãçºçããŸãã: {e}")
ãã®åŠçã§ã¯ããZeroDivisionErrorããšãFileNotFoundErrorãã®äŸå€ãšã©ãŒãæ³å®ããããããåå¥ã«äŸå€ããã£ããããããåŠçãèšèŒããŠããŸãã
å ããŠããExceptionãã¯ã©ã¹ã¯ããã¹ãŠã®äŸå€ã®èŠªã¯ã©ã¹ã§ããããšãå©çšããŠããZeroDivisionErrorããšãFileNotFoundErrorã以å€ã®äŸå€ãšã©ãŒãçºçããå Žåã¯ããã¹ãŠExceptionå ã®åŠçãå®è¡ãããããèšèŒããŠããŸãã
ãŸããException as eããšèšèŒããããšã§ãäŸå€ãªããžã§ã¯ãã倿°eã«ä»£å ¥ãã詳现ãªãšã©ãŒã¡ãã»ãŒãžãååŸã§ããŸãã
äŸãã°ã倿°xãprintããããšããŠã誀ã£ãŠååšããªã倿°yãã»ããããŠããã³ãŒããå®è¡ããŠã¿ãŸãã
try:
x = 10 / 2
print(y)
except ZeroDivisionError:
print("ãŒãã§é€ç®ããããšã¯ã§ããŸããã")
except FileNotFoundError:
print("ãã¡ã€ã«ãèŠã€ãããŸããã§ããã")
except Exception as e:
print(f"äºæããªããšã©ãŒãçºçããŸãã: {e}")
å®è¡çµæã¯ã
äºæããªããšã©ãŒãçºçããŸãã: name 'y' is not defined
ãšãªããExceptionã¯ã©ã¹å ã®ãšã©ãŒã¡ãã»ãŒãžãè¿åŽãããŠããããšãããããŸãã
elseãšfinallyã«ã€ããŠ
äŸå€ãçºçããªãã£ãå Žåã«è¡ãåŠçãæèšããå Žåã¯ãelseããäŸå€ã®çºçã«é¢ãããå¿ ãåŠçãè¡ãå Žåã¯ãfinallyãã䜿çšããŸãã
else
äžèšã®äŸã§ã¯ã10 / 2ã®èšç®ã¯äŸå€ãšã©ãŒãªãè¡ããããããelseå ã®ã¡ãã»ãŒãžã衚瀺ãããŸãã
try:
x = 10 / 2
except ZeroDivisionError:
print("ãŒãã§é€ç®ããããšã¯ã§ããŸããã")
else:
print("èšç®ã¯æåããŸãããçµæã¯:", x)
finally
finallyã¯ãäŸå€ã®çºçæç¡ã«é¢ãããå¿ ãå®è¡ãããããããªãœãŒã¹ã®è§£æŸãªã©ãå¿ ãè¡ãã¹ãåŠçãããã«æžããŸãã
try:
x = 10 / 2
except ZeroDivisionError:
print("ãŒãã§é€ç®ããããšã¯ã§ããŸããã")
finally:
print("åŠçãå®äºããŸããã")
ãã®äŸã§ã¯ãå¿ ããåŠçãå®äºããŸããããã®ã¡ãã»ãŒãžãè¿åŽãããŸãã
raiseã«ã€ããŠ
æåŸã«æç€ºçã«äŸå€ãçºçãããããšãã§ãããraiseãã«ã€ããŠè§£èª¬ããŸãã
äŸãã°ãè² ã®å€ãæž¡ãããéã«ãäŸå€ãšã©ãŒãçºçããããå Žåãäžèšã®ãããªã³ãŒãã§å®çŸããããšãã§ããŸãã
def check_value(value):
if value < 0:
raise ValueError("è² ã®å€ã¯èš±å¯ãããŠããŸããã")
return value
try:
result = check_value(-1)
except ValueError as e:
print(e)
ãã®äŸã§ã¯ã-1ãšããè² ã®å€ãæž¡ãããraiseå ã®ValueErrorãå®è¡ããããè² ã®å€ã¯èš±å¯ãããŠããŸããããã®ãšã©ãŒã¡ãã»ãŒãžãè¿åŽãããŸãã
æåŸã«ã»ã»
äŸå€åŠçãæ£ããè¡ãããšã§ããŠãŒã¶ãŒã«ãšã£ãŠäœ¿ãããããéçºè ã«ãšã£ãŠãããã°ããããã³ãŒãã«è¿ã¥ããŸãã
åå¿è ã®æ¹ã«ã¯å°ãåã£æããã¥ãããšããã§ã¯ãããŸãããå¿ ãå¿ èŠã«ãªãåŠçã«ãªããŸãã®ã§ããã²ãã¹ã¿ãŒããŠãããŸãããã












