![Pythonで起こるエラーを例外設定しよう!](https://vynsen.net/wp-content/uploads/2022/06/d8dc4a429fc158b16289148e894a8ec2-3.png)
エラーの例外設定について
プログラミングをしていると予期しないエラーに出くわすことが多々あります。
例えば以下のように定義してない変数をprintしようとするとNameErrorが起こります。
![](https://vynsen.net/wp-content/uploads/2022/06/1558769244f41c7fc9aec4ce3485f9af-11-1024x576.png)
以下の場合ではリストのインデックスにない番号を指定しているので、IndexErrorが発生します。
![](https://vynsen.net/wp-content/uploads/2022/06/b6355c7c038a632663103b69d9f99965-12-1024x576.png)
Pythonではそのような場合にそなえてエラーが発生したときの例外処理を決めておくことが出来ます。
例外キャッチ処理
例外キャッチ処理には以下のコードを使用します。
![](https://vynsen.net/wp-content/uploads/2022/06/1b7edbcf9236dbb9448582632defb35a-3-1024x576.png)
tryの中で先ほどのエラーを実行します。
tryの中にあるコードは2つともエラーを引き起こすコードとなります。
1行目のエラーが発生した時点で2行目は実行されずに、exceptの中のコードが実行されます。
![](https://vynsen.net/wp-content/uploads/2022/06/b12368405978cab1ec92c573e747ef7a-1-1024x576.png)
1行目のコードで起きているエラーは「NameError」というエラーになります。
exceptはエラー毎に実行内容を決めることが出来ます。
以下のようにexceptにNameErrorを指定して実行内容を決めます。
また、asのあとに変数を作り、エラー内容を格納した変数を作成することが出来ます。
![](https://vynsen.net/wp-content/uploads/2022/06/39aef9ad868248767435085a5e657cfe-4-1024x576.png)
次に、NameErrorの分をtryから削除し、IndexErrorのみにします。
この場合は、IndexErrorを定義しているexceptのみが実行されます。
![](https://vynsen.net/wp-content/uploads/2022/06/47702baa6dc713b300a69d42db4b8db2-1024x576.png)
elseの実行
ではtryの中にエラー文を削除し、exceptの実行を防ぎ、elseを追加してみます。
exceptが実行される場合はelseは実行されません。
ただし、以下の場合はtryの中にエラー文がないためtryおよびelseが実行されます。
![](https://vynsen.net/wp-content/uploads/2022/06/1558769244f41c7fc9aec4ce3485f9af-12-1024x576.png)
finallyはどのような条件でも実行するものになります。
例外処理を設定した関数の作成
関数を作成する際に例外処理を設定しておくと、処理の停止を避けることが出来ます。
以下のコードでは関数の中でIndexErrorを回避しています。
![](https://vynsen.net/wp-content/uploads/2022/06/b7b85b783aa322256742a138c703bba9-7-1024x576.png)
エラーを作成する
次にエラーを作成する方法を見ていきます。raiseを使うと独自のエラーを設定することが出来ます。
以下では何も設定しなければ身長が1mで10mでも100mでも以下のinputではエラーが起こりません。
しかし、実際人間で10mの身長などはありえないでしょう。
その場合はraiseを使ってエラーを起こすように設定することが出来ます。
以下の設定ではheightのinputに3以上の数値が入力されたらエラーが起こります。
![](https://vynsen.net/wp-content/uploads/2022/06/b6355c7c038a632663103b69d9f99965-13-1024x576.png)
ぜひ参考にしてください!また!