Pythonのtry/exceptでエラーも怖くない!Java経験者向けにわかりやすく解説

こんにちは。ゆうせいです。
今回は Pythonの例外処理(try / except
) を、Javaを学んだばかりの新人エンジニアの方に向けて、わかりやすく説明していきます。
Javaに慣れていると「Pythonってゆるすぎない?」と思うかもしれませんが、例外処理については共通点も多く、違いを理解すればすぐに使いこなせるようになります!
PythonとJavaの例外処理の基本構文の違い
Javaの基本的な例外処理
try {
// エラーが起きそうな処理
} catch (IOException e) {
// エラー処理
} finally {
// 必ず実行される処理
}
Javaではtry
の後にcatch
で特定の例外を受け取り、必要があればfinally
で後処理しますよね。
Pythonの基本的な例外処理
try:
# エラーが起きそうな処理
except IOError as e:
# エラー処理
finally:
# 必ず実行される処理
どうでしょう?構造はほぼ同じです。try
→ except
→ finally
という流れで、Java経験者には馴染みやすい構文ですね。
ただし、Pythonではすべての例外が「Exception」という1つのクラスを基底にしている点に注意してください。
JavaとPythonの例外処理の違い
比較項目 | Java | Python |
---|---|---|
例外の指定 | catch (IOException e) のように明示的に型を書く | except IOError as e のように書くが、型指定は任意 |
チェック例外 | あり(コンパイルエラーになる) | なし(すべて実行時例外) |
finally句 | あり | あり(構文も同じ) |
マルチキャッチ | `catch (IOException | SQLException e)` |
実際にコードを書いてみよう!
ファイルを開く例(Java風とPython風)
Javaの例:
try {
FileReader reader = new FileReader("data.txt");
} catch (FileNotFoundException e) {
System.out.println("ファイルが見つかりません!");
}
Pythonで同じ処理:
try:
with open("data.txt", "r") as f:
data = f.read()
except FileNotFoundError as e:
print("ファイルが見つかりません!")
補足:with文って何?
Pythonには with
文という構文があります。これは「リソースを自動で開閉する仕組み」で、Javaでいう try-with-resources
に近いです。
例外を投げる方法(Javaのthrowに相当)
Javaの場合:
throw new IllegalArgumentException("引数が不正です");
Pythonではこう書きます:
raise ValueError("引数が不正です")
Pythonでは raise
を使って例外を明示的に発生させることができます。
finally句で後処理も安心!
ファイルを開いたあと、必ず閉じたいときなどに使う finally
句。Javaと同じように使えます。
try:
f = open("sample.txt", "r")
data = f.read()
except FileNotFoundError:
print("ファイルが存在しません")
finally:
f.close()
このように、たとえ try
の中でエラーが出ても、finally
の中の処理は必ず実行されます。
まとめ:Pythonの例外処理は自由だけど強力!
Pythonのtry / except
文は、Javaと似ている点が多く、構文も直感的です。ただし、いくつかの特徴を理解しておくと安心です。
メリット
- 構文がシンプルで読みやすい
with
文やexcept
の柔軟さでコードがすっきり- 例外の型を明示しなくても動作する(初心者にはありがたい)
デメリット
- チェック例外がないため、ミスが実行時まで気づかないことも
- 例外の範囲が広すぎるとバグに気づきにくくなる
今後の学習のポイント
- Pythonの例外階層(
Exception
やBaseException
など)を確認してみましょう。 else
句やraise from
による例外の連鎖も学んでおくと、より実践的に使えます。- いろいろな例外(
TypeError
,ValueError
,ZeroDivisionError
など)を試しながら、慣れていくのが近道です!
次は、「独自の例外クラスを作ってみよう」や「with文の仕組みを深堀り」なんかも面白いですよ。
気になるテーマがあれば、どんどん聞いてくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年6月22日√ や Σ、n! の記号はどう生まれた?計算記号の由来とその歴史
山崎講師2025年6月22日論理記号の起源をたどる:∀ や ∃ はどこから来たのか?
山崎講師2025年6月22日集合記号「⊂」「∪」「∈」「∅」はどこから来た? ルーツとエピソードから学ぶ“集合の記号”の歴史
山崎講師2025年6月22日「=」「≠」「<」「>」の意味、知ってる? 数字の関係を表す記号の由来をやさしく解説