šŸPythonć®ä¾‹å¤–å‡¦ē†ć‚’å®Œå…Øćƒžć‚¹ć‚æćƒ¼ļ¼try-except-else-finallyの使い方+学習書5選

目欔
  1. šŸ ć€Œå‹•ćć‚³ćƒ¼ćƒ‰ć€ć‹ć‚‰ć€Œč½ć”ćŖć„ć‚³ćƒ¼ćƒ‰ć€ćø
  2. šŸ“˜ ćć‚‚ćć‚‚ć€Œä¾‹å¤–ć€ćØćÆļ¼Ÿ
  3. šŸŽÆ Pythonć®ä¾‹å¤–å‡¦ē†ļ¼štry-exceptć®åŸŗęœ¬ę§‹ę–‡
  4. šŸ“‹ ä»£č”Øēš„ćŖä¾‹å¤–ć‚Æćƒ©ć‚¹ćØä½æć„åˆ†ć‘
  5. šŸ”€ 複ꕰ恮exceptć‚’ę›øć„ć¦ć€ä¾‹å¤–ć”ćØć«åÆ¾åæœć‚’åˆ†ć‘ć‚‹
  6. ✨ try-except-else-finally:4ć¤ć®ćƒ–ćƒ­ćƒƒć‚Æć®å½¹å‰²
  7. šŸ›”ļø Exceptionļ¼šć™ć¹ć¦ć®ä¾‹å¤–ć‚’ć‚­ćƒ£ćƒƒćƒć™ć‚‹ęœ€ēµ‚ę‰‹ę®µ
  8. šŸ’” å®Ÿå‹™ć§ä¾‹å¤–å‡¦ē†ćŒę“»čŗć™ć‚‹å “é¢
  9. šŸ“š Pythonć®ć€Œä¾‹å¤–å‡¦ē†åŠ›ć€ć‚’ē£ØćåŽ³éøę›øē±ļ¼†ćƒ„ćƒ¼ćƒ«
  10. ā“ ć‚ˆćć‚ć‚‹č³Ŗå•ļ¼ˆFAQ)
  11. šŸŽÆ ć¾ćØć‚ļ¼šä¾‹å¤–å‡¦ē†ć§ć€Œč½ć”ćŖć„ć‚³ćƒ¼ćƒ‰ć€ćø

šŸ ć€Œå‹•ćć‚³ćƒ¼ćƒ‰ć€ć‹ć‚‰ć€Œč½ć”ćŖć„ć‚³ćƒ¼ćƒ‰ć€ćø

ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć‚’ę›øć„ć¦ć„ć¦ć€ć‚ć‚‹ę—„ēŖē„¶ć‚Øćƒ©ćƒ¼ć§ę­¢ć¾ć‚‹ā€”ā€”ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć‚’å­¦ć¶čŖ°ć‚‚ćŒé€šć‚‹é“ć§ć™ć€‚šŸ˜±

ć§ć‚‚ć€ćƒ—ćƒ­ć®ć‚³ćƒ¼ćƒ‰ćÆć€Œć‚Øćƒ©ćƒ¼ćŒčµ·ććŖć„ć‚³ćƒ¼ćƒ‰ć€ć§ćÆćŖćć€ć€Œć‚Øćƒ©ćƒ¼ćŒčµ·ćć¦ć‚‚č½ć”ćŖć„ć‚³ćƒ¼ćƒ‰ć€ć§ć™ć€‚ćć®é•ć„ć‚’ē”Ÿćæå‡ŗć™ć®ćŒć€Pythonć®ä¾‹å¤–å‡¦ē†ć€‚ć“ć‚ŒćŒę›øć‘ć‚‹ć‚ˆć†ć«ćŖć‚‹ćØć€ć‚ćŖćŸć®ć‚³ćƒ¼ćƒ‰ćÆäø€ę°—ć«ć€Œćƒ—ćƒ­ćƒ€ć‚Æćƒˆćƒ¬ćƒ™ćƒ«ć€ć®é¢Øę ¼ć‚’åøÆć³ć¦ćć¾ć™ć€‚āœØ

šŸ“˜ ćć‚‚ćć‚‚ć€Œä¾‹å¤–ć€ćØćÆļ¼Ÿ

ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć«ćŠć‘ć‚‹ä¾‹å¤–ļ¼ˆexceptionļ¼‰ćØćÆć€ć‚³ćƒ³ćƒ”ćƒ„ćƒ¼ć‚æćƒ¼ćŒå‘½ä»¤ć‚’å®Ÿč”Œć—ćŸćØćć«ē™ŗē”Ÿć™ć‚‹ć€Œå•é”Œć€ć®ć“ćØć€‚

ä¾‹å¤–ćŒē™ŗē”Ÿć™ć‚‹å…øåž‹ćƒ‘ć‚æćƒ¼ćƒ³

  • šŸ“Œ 0ć§å‰²ć‚‹čØˆē®—ļ¼š10 / 0 ćÆę•°å­¦ēš„ć«ć‚ć‚Šå¾—ćŖć„ć®ć§ ZeroDivisionError ćŒē™ŗē”Ÿ
  • šŸ“Œ ęœŖå®šē¾©ć®å¤‰ę•°ļ¼šå®šē¾©ć—ć¦ć„ćŖć„å¤‰ę•°ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćØ NameError ćŒē™ŗē”Ÿ
  • šŸ“Œ ćƒćƒƒćƒˆćƒÆćƒ¼ć‚Æéšœå®³ļ¼šé€šäæ”ćŒé€”åˆ‡ć‚Œć¦å¤–éƒØAPIć‹ć‚‰åæœē­”ćŒę„ćŖć„
  • šŸ“Œ ćƒ”ćƒ¢ćƒŖäøč¶³ļ¼šć‚³ćƒ³ćƒ”ćƒ„ćƒ¼ć‚æćƒ¼ć®ē©ŗććƒ”ćƒ¢ćƒŖćŒęžÆęø‡
  • šŸ“Œ ćƒ•ć‚”ć‚¤ćƒ«ćŒćŖć„ļ¼šé–‹ć“ć†ćØć—ćŸćƒ•ć‚”ć‚¤ćƒ«ćŒå­˜åœØć—ćŖć„ļ¼ˆFileNotFoundError)

ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć®ćƒŸć‚¹ć§čµ·ćć‚‹ä¾‹å¤–ć‚‚ć‚ć‚Œć°ć€ć‚³ćƒ¼ćƒ‰ć®å•é”Œć§ćÆćŖćå¤–éƒØč¦å› ć§čµ·ćć‚‹ä¾‹å¤–ć‚‚ć‚ć‚Šć¾ć™ć€‚å¾Œč€…ćÆäŗˆęø¬ć—ć„ć‚‰ć„ć‹ć‚‰ć“ćć€ć€Œć‚ć‚‰ć‹ć˜ć‚åÆ¾å‡¦ć—ć¦ćŠćć€å§æå‹¢ćŒé‡č¦ćŖć®ć§ć™ć€‚šŸ›”ļø

šŸŽÆ Pythonć®ä¾‹å¤–å‡¦ē†ļ¼štry-exceptć®åŸŗęœ¬ę§‹ę–‡

Pythonć§ä¾‹å¤–å‡¦ē†ć‚’ę›øćć«ćÆ try と except を使います。

try:
    # ä¾‹å¤–ćŒē™ŗē”Ÿć™ć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹å‡¦ē†
    result = x / y
except ZeroDivisionError:
    # ä¾‹å¤–ćŒē™ŗē”Ÿć—ćŸćØćć®å‡¦ē†
    print("0ć§ćÆå‰²ć‚Œć¾ć›ć‚“")

tryćƒ–ćƒ­ćƒƒć‚Æ

try: ć®å¾Œć«ć‚¤ćƒ³ćƒ‡ćƒ³ćƒˆć‚’ć¤ć‘ć¦ć€ä¾‹å¤–ćŒē™ŗē”Ÿć™ć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹å‡¦ē†ć‚’ę›øćć¾ć™ć€‚ć€Œć“ć“ć§ä½•ć‹čµ·ćć‚‹ć‹ć‚‚ć—ć‚ŒćŖć„ć€ćØć„ć†å®£čØ€ć§ć™ć€‚

exceptćƒ–ćƒ­ćƒƒć‚Æ

except 例外型: ć®å¾Œć«ć€ä¾‹å¤–ćŒē™ŗē”Ÿć—ćŸćØćć«å®Ÿč”Œć™ć‚‹å‡¦ē†ć‚’ę›øćć¾ć™ć€‚ć“ć‚Œć§ć€ä¾‹å¤–ćŒčµ·ćć¦ć‚‚ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćÆę­¢ć¾ć‚‰ćšć€å„Ŗé›…ć«åÆ¾å‡¦ć§ćć¾ć™ć€‚šŸ‘

šŸ“‹ ä»£č”Øēš„ćŖä¾‹å¤–ć‚Æćƒ©ć‚¹ćØä½æć„åˆ†ć‘

Pythonć«ćÆä¾‹å¤–ć®ēØ®é”žć”ćØć«å°‚ē”Øć®ä¾‹å¤–ć‚Æćƒ©ć‚¹ćŒćŸćć•ć‚“ē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚ä»£č”Øēš„ćŖć‚‚ć®ć‚’ęŠ¼ć•ćˆć¦ćŠćć¾ć—ć‚‡ć†ć€‚

  • šŸ“Œ ZeroDivisionError:0ć§å‰²ć£ćŸćØć
  • šŸ“Œ NameError:ęœŖå®šē¾©ć®å¤‰ę•°ć‚’ä½æć£ćŸćØć
  • šŸ“Œ TypeError:åž‹ćŒåˆć‚ćŖć„ę¼”ē®—ć‚’ć—ćŸćØćļ¼ˆä¾‹ļ¼šę–‡å­—åˆ—ļ¼‹ę•°å€¤ļ¼‰
  • šŸ“Œ ValueError:å€¤ćŒäøę­£ćŖćØćļ¼ˆä¾‹ļ¼šint("abc"))
  • šŸ“Œ FileNotFoundError:ćƒ•ć‚”ć‚¤ćƒ«ćŒč¦‹ć¤ć‹ć‚‰ćŖć„ćØć
  • šŸ“Œ MemoryError:ćƒ”ćƒ¢ćƒŖäøč¶³ć®ćØć
  • šŸ“Œ AttributeError:ć‚Ŗćƒ–ć‚øć‚§ć‚Æćƒˆć«å­˜åœØć—ćŖć„å±žę€§ć«ć‚¢ć‚Æć‚»ć‚¹ć—ćŸćØć

ä¾‹å¤–ć‚Ŗćƒ–ć‚øć‚§ć‚Æćƒˆć®äø­čŗ«ć‚’å–ć‚Šå‡ŗć™

as å¤‰ę•°å ć‚’ć¤ć‘ć‚‹ćØć€ä¾‹å¤–ć‚Ŗćƒ–ć‚øć‚§ć‚Æćƒˆć‚’å¤‰ę•°ć«ä»£å…„ć—ć¦å†…å®¹ć‚’ē¢ŗčŖć§ćć¾ć™ć€‚

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print(e)   # division by zero

PythonćŒå†…éƒØēš„ć«å‡ŗåŠ›ć™ć‚‹ć‚Øćƒ©ćƒ¼ćƒ”ćƒƒć‚»ćƒ¼ć‚øć®č©³ē“°čŖ¬ę˜Žć‚’ć€č‡Ŗåˆ†ć®ć‚³ćƒ¼ćƒ‰ć§å–ć‚Šå‡ŗć—ć¦ä½æćˆć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚šŸ”

šŸ”€ 複ꕰ恮exceptć‚’ę›øć„ć¦ć€ä¾‹å¤–ć”ćØć«åÆ¾åæœć‚’åˆ†ć‘ć‚‹

except ćƒ–ćƒ­ćƒƒć‚ÆćÆć„ćć¤ć§ć‚‚ę›øćć“ćØćŒć§ćć€ä¾‹å¤–ć®ēØ®é”žć”ćØć«ē•°ćŖć‚‹å‡¦ē†ć‚’å®Ÿč”Œć§ćć¾ć™ć€‚

try:
    result = x / y
except ZeroDivisionError as e:
    print("0ć§ćÆå‰²ć‚Œć¾ć›ć‚“")
    print(e)
except NameError as e:
    print("å¤‰ę•°ćŒå®šē¾©ć•ć‚Œć¦ć„ć¾ć›ć‚“")
    print(e)

怌0é™¤ē®—ćŖć‚‰ć“ć®å‡¦ē†ć€ć€ŒęœŖå®šē¾©å¤‰ę•°ćŖć‚‰ć“ć®å‡¦ē†ć€ćØć€ēŠ¶ę³ć«åæœć˜ć¦ęŸ”č»Ÿć«åÆ¾å‡¦ć§ćć¾ć™ć€‚ćƒ—ćƒ­ć®ć‚³ćƒ¼ćƒ‰ć§ćÆå½“ćŸć‚Šå‰ć«ä½æć‚ć‚Œć‚‹ćƒ‘ć‚æćƒ¼ćƒ³ć§ć™ć€‚šŸŽÆ

✨ try-except-else-finally:4ć¤ć®ćƒ–ćƒ­ćƒƒć‚Æć®å½¹å‰²

ä¾‹å¤–å‡¦ē†ć‚’å®Œå…Øć«ć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ«ć™ć‚‹ć«ćÆć€4ć¤ć®ćƒ–ćƒ­ćƒƒć‚Æć®ä½æć„åˆ†ć‘ć‚’č¦šćˆć¾ć—ć‚‡ć†ć€‚

tryļ¼šä¾‹å¤–ćŒē™ŗē”Ÿć™ć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹å‡¦ē†

ć€Œć“ć“ć§ć‚Øćƒ©ćƒ¼ćŒčµ·ćć‚‹ć‹ć‚‚ć€ćØć„ć†å‡¦ē†ć‚’ę›øćå “ę‰€ć€‚

exceptļ¼šä¾‹å¤–ćŒē™ŗē”Ÿć—ćŸćØćć®å‡¦ē†

ä¾‹å¤–ćŒčµ·ććŸćØćć®ć€ŒćƒŖć‚«ćƒćƒŖćƒ¼ć€å‡¦ē†ć€‚

elseļ¼šä¾‹å¤–ćŒē™ŗē”Ÿć—ćŖć‹ć£ćŸćØćć®å‡¦ē†

怌tryćŒęˆåŠŸć—ćŸå “åˆć®ćæć€å®Ÿč”Œć—ćŸć„å‡¦ē†ć‚’ę›øćć¾ć™ć€‚

try:
    result = 10 / 2
except ZeroDivisionError:
    print("0ć§ćÆå‰²ć‚Œć¾ć›ć‚“")
else:
    print("ę­£åøøć«ēµ‚äŗ†ć—ć¾ć—ćŸ")
    print(f"ēµęžœćÆ {result}")

finallyļ¼šä¾‹å¤–ć®ęœ‰ē„”ć«ć‹ć‹ć‚ć‚‰ćšåæ…ćšå®Ÿč”Œć•ć‚Œć‚‹å‡¦ē†

ä¾‹å¤–ćŒčµ·ćć¦ć‚‚čµ·ććŖćć¦ć‚‚åæ…ćšęœ€å¾Œć«å®Ÿč”Œć•ć‚Œć‚‹å‡¦ē†ć‚’ę›øćć¾ć™ć€‚ćƒŖć‚½ćƒ¼ć‚¹ć®č§£ę”¾ć‚„ć€ćƒ­ć‚°å‡ŗåŠ›ćŖć©ć«ä½æć†ć®ćŒå®šē•Ŗć§ć™ć€‚

try:
    result = 10 / 0
except ZeroDivisionError:
    print("0ć§ćÆå‰²ć‚Œć¾ć›ć‚“")
else:
    print("正常終了")
finally:
    print("å‡¦ē†ćŒå®Œäŗ†ć—ć¾ć—ćŸ")   # ä¾‹å¤–ć®ęœ‰ē„”ć«é–¢äæ‚ćŖćåæ…ćšå®Ÿč”Œ
4ć¤ć®ćƒ–ćƒ­ćƒƒć‚Æć®å®Ÿč”Œé †åŗćÆ try → except(または else)→ finally怂tryć§ä¾‹å¤–ćŒå‡ŗć‚Œć° except ēµŒē”±ć€å‡ŗćŖć‘ć‚Œć° else ēµŒē”±ć‚’é€šć‚Šć€ć©ć”ć‚‰ć®å “åˆć‚‚ finally ćÆåæ…ćšé€šć‚‹ć®ćŒćƒć‚¤ćƒ³ćƒˆć§ć™ć€‚šŸ“

šŸ›”ļø Exceptionļ¼šć™ć¹ć¦ć®ä¾‹å¤–ć‚’ć‚­ćƒ£ćƒƒćƒć™ć‚‹ęœ€ēµ‚ę‰‹ę®µ

å€‹åˆ„ć®ä¾‹å¤–ć‚Æćƒ©ć‚¹ć§ćÆćŖćć€Exception ć‚’ęŒ‡å®šć™ć‚‹ćØć‚·ć‚¹ćƒ†ćƒ ēµ‚äŗ†ä»„å¤–ć®ć™ć¹ć¦ć®ä¾‹å¤–ć‚’ć‚­ćƒ£ćƒƒćƒć§ćć¾ć™ć€‚

try:
    # 何らかの処理
    result = x / y
except Exception as e:
    print(f"ä½•ć‚‰ć‹ć®ć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć—ć¾ć—ćŸ: {e}")

Exceptionć‚Æćƒ©ć‚¹ć®ä½ē½®ć„ć‘

PythonćŒć‚ć‚‰ć‹ć˜ć‚å®šē¾©ć—ć¦ć„ć‚‹ä¾‹å¤–ć‚Æćƒ©ć‚¹ćÆć€ć‚·ć‚¹ćƒ†ćƒ ēµ‚äŗ†ē³»ļ¼ˆSystemExit ćŖć©ļ¼‰ć‚’é™¤ć„ć¦ć€ć™ć¹ć¦ćŒ Exception ć‚Æćƒ©ć‚¹ć‹ć‚‰ę“¾ē”Ÿć—ć¦ć„ć¾ć™ć€‚ć ć‹ć‚‰ except Exception ćØę›øć‘ć°ć€ć»ć¼ć‚ć‚‰ć‚†ć‚‹ä¾‹å¤–ć‚’ć‚­ćƒ£ćƒƒćƒć§ćć‚‹ć‚ć‘ć§ć™ć€‚šŸ›ļø

ćŸć ć—ć€ŒćØć‚Šć‚ćˆćšå…ØéƒØć‚­ćƒ£ćƒƒćƒć€ćÆćƒć‚°ć‚’éš ć™åŽŸå› ć«ć‚‚ćŖć‚Šć¾ć™ć€‚ē‰¹å®šć®ä¾‹å¤–ć‚’å€‹åˆ„ć«ć‚­ćƒ£ćƒƒćƒć—ć¦ć€ęƒ³å®šå¤–ć®ć‚‚ć®ć ć‘ęœ€å¾Œć« Exception ć§å—ć‘ć‚‹ć®ćŒć€äæå®ˆę€§ć®é«˜ć„ę›øćę–¹ć§ć™ć€‚āš ļø

šŸ’” å®Ÿå‹™ć§ä¾‹å¤–å‡¦ē†ćŒę“»čŗć™ć‚‹å “é¢

å®Ÿéš›ć®ć‚·ć‚¹ćƒ†ćƒ ć§ä¾‹å¤–å‡¦ē†ćŒåæ…č¦ć«ćŖć‚‹ć®ćÆć€å¤–éƒØćØć®ćƒ‡ćƒ¼ć‚æć®ć‚„ć‚Šå–ć‚ŠćŒć‚ć‚‹éƒØåˆ†ćŒäø­åæƒć§ć™ć€‚

  • šŸ“ ćƒ•ć‚”ć‚¤ćƒ«ę“ä½œļ¼ščŖ­ćæč¾¼ćæćƒ»ę›øćč¾¼ćæę™‚ć®ć‚Øćƒ©ćƒ¼
  • šŸ—„ļø ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶š:ęŽ„ē¶šå¤±ę•—ć€ć‚Æć‚ØćƒŖć‚Øćƒ©ćƒ¼
  • 🌐 HTTPé€šäæ”:ć‚æć‚¤ćƒ ć‚¢ć‚¦ćƒˆć€ć‚µćƒ¼ćƒćƒ¼ć‚Øćƒ©ćƒ¼
  • šŸ“Š ćƒ‡ćƒ¼ć‚æå¤‰ę›:äøę­£ćŖå€¤ć®åž‹å¤‰ę›å¤±ę•—
  • šŸ” čŖčØ¼å‡¦ē†:ćƒˆćƒ¼ć‚Æćƒ³ęœŸé™åˆ‡ć‚Œć€ęØ©é™ć‚Øćƒ©ćƒ¼

ć“ć†ć—ćŸå “é¢ć§ä¾‹å¤–å‡¦ē†ć‚’é©åˆ‡ć«ę›øć‘ć¦ć„ć‚‹ćØć€ć€Œęƒ³å®šå¤–ć®äŗ‹ę…‹ć§ć‚‚ę­¢ć¾ć‚‰ćŖć„ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć€ćŒä½œć‚Œć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚ć“ć‚ŒćŒćƒ—ćƒ­ć®ć‚³ćƒ¼ćƒ‰ćØåˆåæƒč€…ć‚³ćƒ¼ćƒ‰ć‚’åˆ†ć‘ć‚‹ć€ć‚‚ć£ćØć‚‚åˆ†ć‹ć‚Šć‚„ć™ć„å·®ć§ć™ć€‚šŸš€

šŸ“š Pythonć®ć€Œä¾‹å¤–å‡¦ē†åŠ›ć€ć‚’ē£ØćåŽ³éøę›øē±ļ¼†ćƒ„ćƒ¼ćƒ«

例外処理は、Pythonć‚’ä½æć„ē¶šć‘ć‚‹é™ć‚Šä½•åŗ¦ć‚‚ę›øćåæ…é ˆć‚¹ć‚­ćƒ«ć€‚č‰Æę›øć‚’ę‰‹å…ƒć«ē½®ć„ć¦ć€å¼•ćå‡ŗć—ć‚’å¢—ć‚„ć—ć¦ć„ćć¾ć—ć‚‡ć†ć€‚

🌱 ć¾ćšćÆåŸŗē¤Žć‹ć‚‰ļ¼šć€Žć‚¹ćƒƒć‚­ćƒŖć‚ć‹ć‚‹Pythonå…„é–€ć€

ä¾‹å¤–å‡¦ē†ć‚’å«ć‚ćŸPythonć®åŸŗęœ¬ę–‡ę³•ć‚’ä½“ē³»ēš„ć«å­¦ć¹ć‚‹å®šē•Ŗę›øć€‚åˆå­¦č€…ć®ć€ŒćŖćœć€ć«äøåÆ§ć«ē­”ćˆć¦ćć‚Œć¾ć™ć€‚

šŸ“– å®Ÿå‹™ć§ä½æć„ć“ćŖć™ļ¼šć€ŽPythonå®Ÿč·µå…„é–€ć€

ä¾‹å¤–å‡¦ē†ć®åæœē”Øćƒ†ć‚Æćƒ‹ćƒƒć‚Æć‚„ć€Pythonć‚‰ć—ć„ę›øćę–¹ć‚’ę·±ćå­¦ć¹ć‚‹1å†Šć€‚äø­ē“šč€…ćøć®ć‚¹ćƒ†ćƒƒćƒ—ć‚¢ćƒƒćƒ—ć«ęœ€é©ć§ć™ć€‚

šŸš€ ć€Œč‰Æć„ć‚³ćƒ¼ćƒ‰ć€ćøć®90ć®ęŒ‡é‡ļ¼šć€ŽEffective Python 第2ē‰ˆć€

ä¾‹å¤–å‡¦ē†ć®ę›øćę–¹ć‚„ć‚­ćƒ£ćƒƒćƒć™ć¹ćēÆ„å›²ćŖć©ć€Pythonć‚³ćƒŸćƒ„ćƒ‹ćƒ†ć‚£ć®ęŽØå„Øć‚¹ć‚æć‚¤ćƒ«ćŒč©°ć¾ć£ćŸåæ…čŖ­ę›øć€‚

šŸ›”ļø č½ć”ćŖć„ć‚³ćƒ¼ćƒ‰ć‚’ę›øćļ¼šć€Žćƒ­ćƒć‚¹ćƒˆPython怏

ä¾‹å¤–å‡¦ē†ć‚’å«ć‚€ć€å …ē‰¢ć§äæå®ˆć—ć‚„ć™ć„Pythonć‚³ćƒ¼ćƒ‰ć®ę›øćę–¹ć‚’å­¦ć¹ć‚‹å®Ÿč·µę›øć€‚ć€Œę„­å‹™ć§ä½æćˆć‚‹ć‚³ćƒ¼ćƒ‰ć€ć‚’ę›øććŸć„äŗŗć«ęœ€é©ć§ć™ć€‚

āŒØļø ćƒ‡ćƒćƒƒć‚°ć‚’ę”Æćˆć‚‹ē›øę£’ć‚­ćƒ¼ćƒœćƒ¼ćƒ‰

ä¾‹å¤–å‡¦ē†ć‚’ę›øć„ćŸć‚Šć‚Øćƒ©ćƒ¼ć‚’čæ½ć£ćŸć‚Šć™ć‚‹ę™‚é–“ćÆåœ°å‘³ć«ć‚æć‚¤ćƒ”ćƒ³ć‚°ćŒå¤šć„ä½œę„­ć€‚ę‰“éµę„ŸćŒč‰Æćč¤‡ę•°ćƒ‡ćƒć‚¤ć‚¹åˆ‡ę›æåÆ¾åæœć®ć‚­ćƒ¼ćƒœćƒ¼ćƒ‰ćŒć‚ć‚Œć°ć€é›†äø­åŠ›ćŒé•·ćē¶šćć¾ć™ć€‚

ā“ ć‚ˆćć‚ć‚‹č³Ŗå•ļ¼ˆFAQ)

šŸ¤” Q1. ä¾‹å¤–å‡¦ē†ćÆä½•ć§ć‚‚ć‹ć‚“ć§ć‚‚ę›øćć¹ćļ¼Ÿ

ć„ć„ćˆć€ę›øćć™ćŽćÆé€†åŠ¹ęžœć§ć™ć€‚ć€Œå¤±ę•—ć™ć‚‹åÆčƒ½ę€§ćŒé«˜ćć€ćƒŖć‚«ćƒćƒŖćƒ¼ćŒåæ…č¦ćŖå‡¦ē†ć€ć«ēµžć£ć¦ę›øćć®ćŒć‚³ćƒ„ć€‚try-except ć§å›²ćæć™ćŽć‚‹ćØć€ęœ¬ę„ē™ŗč¦‹ć™ć¹ććƒć‚°ćŒéš ć‚Œć¦ć—ć¾ć†ć€Œä¾‹å¤–ć®ę”ć‚Šć¤ć¶ć—ć€ćŒčµ·ćć¾ć™ć€‚šŸ¤

šŸ¤” Q2. except Exception ć ć‘ć§å…ØéƒØć‚­ćƒ£ćƒƒćƒć—ć¦ć‚‚ć„ć„ļ¼Ÿ

éæć‘ć‚‹ć¹ćć§ć™ć€‚å€‹åˆ„ć®ä¾‹å¤–ć‚’ę˜Žē¤ŗēš„ć«ć‚­ćƒ£ćƒƒćƒć™ć‚‹ć®ćŒęŽØå„Øć•ć‚Œć‚‹ę›øćę–¹ć€‚Exception ćÆć€Œęƒ³å®šå¤–ć®ć‚‚ć®ć‚’ęœ€å¾Œć«ę‹¾ć†å®‰å…Øē¶²ć€ćØć—ć¦ä½æć†ć®ćŒćƒ—ćƒ­ć®ä½œę³•ć§ć™ć€‚šŸ›”ļø

šŸ¤” Q3. raiseę–‡ć£ć¦ä½•ļ¼Ÿ

ä¾‹å¤–ć‚’ę„å›³ēš„ć«ē™ŗē”Ÿć•ć›ć‚‹å‘½ä»¤ć§ć™ć€‚ä¾‹ļ¼šraise ValueError("å€¤ćŒäøę­£ć§ć™")ć€‚å…„åŠ›ćƒć‚§ćƒƒć‚ÆćŖć©ć§ć€Œć“ć“ć§å‡¦ē†ć‚’ę­¢ć‚ć¦å‘¼ć³å‡ŗć—å…ƒć«ć‚Øćƒ©ćƒ¼ć‚’ä¼ćˆćŸć„ć€å “é¢ć§ä½æć„ć¾ć™ć€‚āš ļø

šŸ¤” Q4. ć‚«ć‚¹ć‚æćƒ ä¾‹å¤–ć£ć¦ä½œć‚Œć‚‹ļ¼Ÿ

ćÆć„ć€ä½œć‚Œć¾ć™ć€‚class MyAppError(Exception): pass ć®ć‚ˆć†ć« Exception ć‚’ē¶™ę‰æć—ćŸć‚Æćƒ©ć‚¹ć‚’å®šē¾©ć™ć‚Œć°ć€ć‚¢ćƒ—ćƒŖē‹¬č‡Ŗć®ä¾‹å¤–ć‚’č”Øē¾ć§ćć¾ć™ć€‚å¤§č¦ęØ”é–‹ē™ŗć§ćÆåæ…é ˆć®ćƒ†ć‚Æćƒ‹ćƒƒć‚Æć§ć™ć€‚šŸŽØ

šŸ¤” Q5. finally と withć€ć©ć£ć”ä½æćˆć°ć„ć„ļ¼Ÿ

ćƒ•ć‚”ć‚¤ćƒ«ę“ä½œćŖć©ć®ćƒŖć‚½ćƒ¼ć‚¹č§£ę”¾ć«ćÆ with ę–‡ć‚’ä½æć†ć®ćŒē¾ä»£Pythonć®ęŽØå„Øć‚¹ć‚æć‚¤ćƒ«ć€‚finally ć‚ˆć‚Šć‚‚ē°”ę½”ć§ć€é–‰ć˜åæ˜ć‚ŒćŒć‚ć‚Šć¾ć›ć‚“ć€‚ä¾‹ļ¼šwith open("file.txt") as f: ...ć€‚āœØ

šŸŽÆ ć¾ćØć‚ļ¼šä¾‹å¤–å‡¦ē†ć§ć€Œč½ć”ćŖć„ć‚³ćƒ¼ćƒ‰ć€ćø

Pythonć®ä¾‹å¤–å‡¦ē†ć‚’ćŠć•ć‚‰ć„ć™ć‚‹ćØā€”ā€”

  • šŸ“Œ tryļ¼šä¾‹å¤–ćŒē™ŗē”Ÿć™ć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹å‡¦ē†
  • šŸ“Œ except:ä¾‹å¤–ē™ŗē”Ÿę™‚ć®å‡¦ē†ļ¼ˆč¤‡ę•°ę›øć‘ć‚‹ļ¼‰
  • šŸ“Œ else:ä¾‹å¤–ćŒē™ŗē”Ÿć—ćŖć‹ć£ćŸćØćć®å‡¦ē†
  • šŸ“Œ finally:ä¾‹å¤–ć®ęœ‰ē„”ć«é–¢ć‚ć‚‰ćšåæ…ćšå®Ÿč”Œć•ć‚Œć‚‹å‡¦ē†
  • šŸ“Œ as å¤‰ę•°å:ä¾‹å¤–ć‚Ŗćƒ–ć‚øć‚§ć‚Æćƒˆć‚’å–ć‚Šå‡ŗć—ć¦č©³ē“°ć‚’ē¢ŗčŖ
  • šŸ“Œ Exception:ć‚·ć‚¹ćƒ†ćƒ ēµ‚äŗ†ä»„å¤–ć®å…Øä¾‹å¤–ć‚’ć‚­ćƒ£ćƒƒćƒć™ć‚‹ęœ€ēµ‚ę‰‹ę®µ

ä¾‹å¤–å‡¦ē†ć‚’ę›øć‘ć‚‹ć‚ˆć†ć«ćŖć‚‹ćØć€ć‚³ćƒ¼ćƒ‰ćÆč¦‹é•ćˆć‚‹ć»ć©é ‘äøˆć«ćŖć‚Šć¾ć™ć€‚ćƒ•ć‚”ć‚¤ćƒ«ćŒč¦‹ć¤ć‹ć‚‰ćŖćć¦ć‚‚ć€ćƒćƒƒćƒˆćƒÆćƒ¼ć‚ÆćŒåˆ‡ć‚Œć¦ć‚‚ć€äøę­£ćŖå…„åŠ›ćŒę„ć¦ć‚‚ā€”ā€”ć‚ćŖćŸć®ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćÆå„Ŗé›…ć«åÆ¾å‡¦ć—ć¦ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ć«åˆ†ć‹ć‚Šć‚„ć™ć„ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’čæ”ć›ć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚šŸ’Ŗ

ć€Œå‹•ćć‚³ćƒ¼ćƒ‰ć€ć‹ć‚‰ć€Œč½ć”ćŖć„ć‚³ćƒ¼ćƒ‰ć€ćøć€‚ćƒ—ćƒ­ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒžćƒ¼ćøć®ē¬¬äø€ę­©ćÆć€ä¾‹å¤–å‡¦ē†ć‚’å½“ćŸć‚Šå‰ć«ę›øćēæ’ę…£ć‹ć‚‰å§‹ć¾ć‚Šć¾ć™ć€‚ä»Šę—„ć®ć‚³ćƒ¼ćƒ‡ć‚£ćƒ³ć‚°ć‹ć‚‰ć€ćœć² try-except ć‚’ę„č­˜ć—ć¦ę›øć„ć¦ćæć¦ćć ć•ć„ć€‚ć‚ćŖćŸć®ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćŒć€č¦‹é•ćˆć‚‹ć»ć©äæ”é ¼ć§ćć‚‹å­˜åœØć«å¤‰ć‚ć£ć¦ć„ćć¾ć™ć€‚šŸš€

恂恖悉恗

ćÆć˜ć‚ć¾ć—ć¦ć€ć‚ć–ć‚‰ć—ć§ć™ć€‚ ćƒ•ćƒŖćƒ¼ć‚æćƒ¼ć‹ć‚‰ć‚Øćƒ³ć‚øćƒ‹ć‚¢ä¼šē¤¾ćøå°±č·ć—ć€ ē¾åœØćÆćƒ•ćƒŖćƒ¼ćƒ©ćƒ³ć‚¹ć®ć‚·ć‚¹ćƒ†ćƒ ć‚Øćƒ³ć‚øćƒ‹ć‚¢ćØć—ć¦åƒć„ć¦ć„ć¾ć™ć€‚ ęœ¬ę„­ć®ć‚Øćƒ³ć‚øćƒ‹ć‚¢ę„­ć®ć‹ćŸć‚ć‚‰ć€ āœļø ćƒ–ćƒ­ć‚°é‹å–¶ ćØć€ŒåŽå…„ć®ęŸ±ć‚’å¢—ć‚„ć™ęŒ‘ęˆ¦ć€ć‚’å°‘ć—ćšć¤ē¶šć‘ć¦ć„ć¾ć™ć€‚ ćƒ•ćƒŖćƒ¼ć‚æćƒ¼ę™‚ä»£ć‹ć‚‰ęÆ”ć¹ć‚‹ćØć€ ę®µéšŽēš„ć«åŽå…„ćŒå¢—ćˆć¦ć„ćć®ć‚’å®Ÿę„Ÿć§ćć‚‹ć®ćŒē“ ē›“ć«ć†ć‚Œć—ć„ä»Šę—„ć“ć®é ƒć€‚ ć“ć®ćƒ–ćƒ­ć‚°ć§ćÆć€ę—„ć€…ć®ę°—ć„ććƒ»ä½“éØ“č«‡ ITćƒ»ć‚¬ć‚øć‚§ćƒƒćƒˆćƒ»ć‚²ćƒ¼ćƒ ē³»ć®č©± ć€ŒčŖæć¹ć¦åˆ†ć‹ć£ćŸć“ćØć€ć‚’å™›ćæē •ć„ćŸč§£čŖ¬ ćŖć©ć‚’äø­åæƒć«ć€ć‚øćƒ£ćƒ³ćƒ«ć«ēø›ć‚‰ć‚ŒćŖć„é›‘čØ˜ćƒ–ćƒ­ć‚°ćØć—ć¦ē™ŗäæ”ć—ć¦ć„ć¾ć™ć€‚ ć€Œč‡Ŗåˆ†ćØåŒć˜ć‚ˆć†ć«ę‚©ć‚“ć§ć„ć‚‹äŗŗć®ćƒ’ćƒ³ćƒˆć«ćŖć‚Œć°ć„ć„ćŖć€ ćć‚“ćŖę°—ęŒć”ć§ę›“ę–°äø­ć§ć™ć€‚ šŸ‘‰ ćƒ—ćƒ­ćƒ•ć‚£ćƒ¼ćƒ«č©³ē“°ćÆć€åå‰ć€Œć‚ć–ć‚‰ć—ć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¦ćć ć•ć„

Recent Posts