Last Updated: 2/6/2024, 5:44:57 AM

# try 文ってなに?

いつ try 文を使うべきなのか?
基本的には if 文を使いますが

→ 頑張っても 例外が返される
可能性があるとき

あるいは
→ 可読性が良くなるとき

あるいは
→ 条件分岐が繰り返されて
実行速度が遅くなるとき

は try 文を使っても
いいかなと思います。
いつ例外を投げるべきなのか?
→ 変数、属性に代入される
オブジェクトの型が
変わってしまうとき

は 例外を投げても
いいかなと思います。

はじめて「try 文」、「例外」という機能を知ったとき、 これを一体いつ使うべきなのか、なぜ存在するのか、全くわかりませんでした。 そういった疑問について、ここでは考えていきます。

1 章...例外とエラーってなに?
2 章...if 文とtry 文、どっちを使えばいいの?
3 章...None ってなに?
4 章...例外っていつ投げる?
5 章...Union と Optional ってなに?
6 章...他言語での例外への対応

1 章 では、例外とはなにか?について復習していきます。 また、エラーメッセージの書式や見方について、復習していきます。

膨大なスタックトレースは圧迫感がありますが、 実際のエラーメッセージはほんのわずかしかないことを確認します。

2 章 では、いつ try 文で包むべきかについて見ていきます。 具体的には、try 文と if 文の使い分け方について見ていきます。

まず、例外は「間違えたときに発生する例外」と、 「何かを伝えるために利用する例外」の2種類について確認します。

基本的には try 文を使うと可読性が悪くなるので if 文をなるべく使います。 ただし、次の3つの場合には try 文を使います。

  1. 頑張っても例外が発生してしまう可能性がある場合、
  2. try 文を使った方が可読性が良くなる場合、
  3. 処理が速くなり、それが道理に適う場合、には try 文を使います。

3 ~ 5 章 では、いつ例外を使うべきかについて見ていきます。

変数に代入されるオブジェクトの型が変わってしまうと、ちょっとした問題を引き起こします。 なぜ問題が起こるのかと、それに対する3つの解決策について考えていきます。

3 章 None を返す, 4 章 例外を投げる, 5 章 型アノテーションで検査するの3つです。 例外を投げることは、その枠の中の1つの解決策にすぎません。

6 章 では、他言語での例外への対応について見てきます。 if 文や for 文はどの言語でも大抵同じです。 対して例外に対するアプローチは、言語ごとに異なり見ていく価値があります。

Python の try 文ってなに?