例外を発生させる
プログラムを書いていると、ある条件によって通常の実行の流れを変更する必要が生じることがあります。Pythonは、そのような状況を処理するための仕組みとして例外を提供しています。例外は、プログラムの制御フローを変更するイベントです。Pythonでは、
raise
文を使用してプログラムの任意の場所で手動で例外を発生させることができます。raise
文の簡単な例を示します:x = -1
if x < 0:
# xが負の場合は例外を発生させる
raise Exception('xは負であってはなりません')
このプログラムでは、
x
の値が0未満であれば、Exception
型の例外が「xは負であってはなりません」というメッセージとともに発生します。このプログラムを実行すると、raise
文のところで停止し、次のように例外メッセージが出力されます:Exception: xは負であってはなりません
Exception
の他にも、Pythonにはさまざまな組み込みの例外があり、より具体的な種類のエラーを発生させるために使用できます。例えば、ValueError
を発生させる方法は次のとおりです:def sqrt(n):
if n < 0:
# nが負の場合はValueErrorを発生させる
raise ValueError('負の数の平方根は定義されていません')
return n ** 0.5
print(sqrt(4)) # 2.0
print(sqrt(-1)) # ValueError: 負の数の平方根は定義されていません
この例では、関数
sqrt(n)
は数n
の平方根を計算しようとします。しかし、n
が負の場合、特定のメッセージとともにValueError
を発生させます。raise
で例外を発生させると、プログラムの流れが中断されることに注意してください。これは、多くの場合望ましい動作であり、プログラムが対処できない予期しない事態が発生したことを知らせることができます。特定の例外の種類とメッセージは、エラーの性質についての詳細な情報を提供します。 チャレンジ:ファイルリーダー
大手ソフトウェア企業では、ディレクトリ内に複数のコードファイルがあります。あなたは、ファイルを開いてその内容を返すPythonの関数を作成するよう求められました。しかし、その関数はファイルが存在しない場合にも適切に対応できなければなりません。
関数への入力はファイル名です。
その関数はファイルを読み取り、その内容を返すべきです。ファイルが存在しない場合には、
FileNotFoundError
を発生させる必要があります。入力 | 出力 |
existing_file.txt | Hello World |
nonexistingfile.txt | File does not exist |
Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB