例外
💡 お知らせ: このドキュメントはAIによって翻訳されています。表現に違和感がある場合は、原文(英語)を参照するか、翻訳にご協力ください。
Flix では、try-catch 構文を使って Java の例外(Exception)を捕捉できます。この構文は Java のものと似ていますが、文法が少し異なります。
例えば:
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
def main(): Unit \ IO =
let f = new File("foo.txt");
try {
let r = new BufferedReader(new FileReader(f));
let l = r.readLine();
println("The first line of the file is: ${l}");
r.close()
} catch {
case _: FileNotFoundException =>
println("The file does not exist!")
case ex: IOException =>
println("The file could not be read!");
println("The error message was: ${ex.getMessage()}")
}
ここでは、new FileReader()、r.readLine()、r.close() の呼び出しが IOException を投げる可能性があります。これらの例外を捕捉するために try-catch ブロックを使っています。また、FileNotFoundException 例外に対しては専用の case を追加しています。
注意: Flix のプログラムでは例外を使うべきではありません。これは悪いスタイルとみなされています。代わりに、プログラムでは
Result[e, t]型を使うべきです。try-catch構文は、Flix と Java のコードの境界でのみ使用してください。
注意: Flix は(まだ)
finallyブロックをサポートしていません。