CodeGym /コース /Python SELF JA /人気の例外

人気の例外

Python SELF JA
レベル 17 , レッスン 1
使用可能

2.1 例外の作成

勝てないなら、率いるべし。プログラムでエラーを避けられない場合、エラーをコントロールする方法を学ぶ必要があります。そのために、例外を意識的に作る方法を学びましょう。

最もシンプルな例外の例は、 ゼロでの除算です。そしてプログラムもシンプル:


x = 100 / 0
        

このコードはエラーで実行されます:


Traceback (most recent call last):
    File "", line 1, in 
         x = 100 / 0
        ~~~^~   
ZeroDivisionError: division by zero
        

ZeroDivisionErrorは例外の名前で、division by zeroはその短い説明です。また、Pythonはこの例外が発生した行番号を教えてくれます。

データ型の不一致

もちろん、他の例外もあります。例えば、文字列と数値を足そうとすると:


s = "100" + 100
        

例外TypeErrorが発生します:


Traceback (most recent call last):
    File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'str' and 'int'
        

リストの範囲外アクセス

もう一つの非常に一般的なエラーは、リストに存在しない要素にアクセスしようとすることです:


my_list = [1, 2, 3]
print(my_list[10])
        

例外IndexErrorが発生します:


Traceback (most recent call last):
    print(my_list[10])
        ~~~~~~~^^^^
IndexError: list index out of range
        

全部でどれくらいあるのでしょうか?数千種類の例外があります。さらに、特定の状況を説明するために、既存のものでは不足する場合、自分で作ることも可能です。しかし、最も人気のあるものはそれほど多くありません。

2.2 人気のある例外一覧

たくさんの例外がありますが、初心者としては最も人気のあるものを知っておくと良いでしょう。以下にそれらの表を示します:

例外 説明
Exception 全ての例外の基底クラス。
IndexError シーケンス(例:リストやタプル)の存在しないインデックスにアクセスしようとしたときに発生します。
KeyError 辞書に存在しないキーにアクセスしようとしたときに発生します。
NameError 存在しない変数にアクセスしようとしたときに発生します。
RuntimeError 他の型の例外に関連しない一般的な実行時エラーが発生したときに発生します。
StopIteration イテレーションの終了を知らせるために発生します。
SyntaxError コードに構文エラーがあるときに発生します。
IndentationError コードのインデントエラーのときに発生します(SyntaxErrorのサブタイプ)。
TabError インデントのためにタブとスペースの混在があるときに発生します(IndentationErrorのサブタイプ)。
TypeError 互換性のないデータ型で操作を試みたときに発生します。
UnboundLocalError 宣言される前にローカル変数にアクセスしようとしたときに発生します(NameErrorのサブタイプ)。
ValueError 関数や操作に不適切な値の引数を渡したときに発生します。
ZeroDivisionError ゼロで除算しようとしたときに発生します。

たぶん、初心者として、学習の最初の月にこれらすべてのエラーに遭遇するでしょう。そして、それは悪いことではありません—エラーを通じて学習するのです。

2.3 コード内のエラー

コード内でエラーが発生するいくつかの状況を見てみましょう。そうすれば、コード内でエラーを見つけやすくなります:

IndentationError

このタイプのエラーは、コード内のインデントが正しくないときに発生します。例えば、タブとスペースを混在させたり、インデントの数が正しくない場合です。


def example():
    print("Hello")
     print("World")  # 間違ったインデントがIndentationErrorを引き起こします
        
example()
        

NameError


def example():
    print(undeclared_variable)  # 宣言されていない変数を使用しようとするとNameErrorが発生します
        
example()
        

ValueError

このタイプのエラーは、操作や関数が正しい型の引数を受け取ったが、値が不適切であるときに発生します。


def example():
    int("abc")  # 数値でない文字列を変換しようとするとValueErrorが発生します
        
example()
        

KeyError

このタイプのエラーは、プログラムが辞書内の存在しないキーにアクセスしようとしたときに発生します。


def example():
    my_dict = {"a": 1, "b": 2}
    print(my_dict["c"])  # 存在しないキーにアクセスしようとするとKeyErrorが発生します
        
example()
        

SyntaxError

このタイプのエラーは、コードに構文エラーがあるときに発生します。つまり、Pythonの文法に合わないコードです。


def example():
    eval("if True print('Hello')")  # 間違った構文がSyntaxErrorを引き起こします
        
example()
        

注意した者は武装している。これで、エラーを引き起こす状況を認識したり作成したりできます。次のステップは、これらのエラーを処理する方法を学ぶことです。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION