0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python 3 エンジニア認定基礎試験対策8 - エラーと例外

Last updated at Posted at 2024-01-23

はじめに

Python3エンジニア認定基礎試験の対策として自分用に執筆しています。

この記事はPython・執筆学びたての初心者が執筆しています。間違いがあるかもしれませんので、ぜひ各項目にある参考文献も確認してください。また、誤りがあればコメントで教えていただけると幸いです。

エラーと例外

構文エラー

>>> while True print('Hello')
SyntaxError: invalid syntax

正しい構文で記述されていないとエラーを起こす。
今回だとwhile Trueの後ろに:がないのでエラーとなる

例外

>>> 10 * (1/0)
ZeroDivisionError: division by zero
>>> 4 + spam*3
NameError: name 'spam' is not defined
>>> '2' + 2
TypeError: can only concatenate str (not "int")to str

発生した例外の組込み名が表示される。

例外処理

>>> while True:
...     try:
...         x = int(input())
...         break
...     except:
...         print('Error!')

try文は以下のように動く。

  1. try節が実行される
  2. 例外が発生しなければそのまま終わる
  3. 例外が発生すればその節の残りはスキップ、except節を実行する。
except (RuntimeError, TypeError, NameError):
    pass
except ValueError as e:
    print(e)

といったように複数の例外をキャッチすることもできる

また、else文をつけることもできる。try文でなにもエラーが起きなければ実行される節で、全てのexcept節の後ろにつける。

例外を投げる

raise文を使うと、特定の例外を発生させる。

>>> raise NameError('Hithere')
NameError: HiThere

raise文の後ろに例外名を書かなければ例外が再創出させることができる

>>> try:
...     raise NameError('HiThere')
... except NameError:
...     print('Error!')
...     raise
Error!
NameError: HiThere

クリーンアップ動作を定義

finally節を定義すると、どんな状況でも必ず実行される節を加えることができる。

>>> try:
...     raise KeyboardInterrupt
... finally:
...     print('Goodbye, world!')
GoodBye, world!
KeyboardInterrupt

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?