Exception Handling¶
Throw Exception¶
In Marcel you can throw Exceptions (or any Throwable) like in Java
throw new RuntimeException("Error Message")
You are not forced to catch checked Exceptions in Marcel.
Try/Catch/Finally¶
Exception handling is very similar as Java's.
try {
Object a = null
println(a.hashCode())
println("Successfully tried")
} catch (IOException|NullPointerException e) {
println("Caught exception")
} finally {
println("finally")
}
The above code will print
Caught exception
Finally
Try with resources¶
Try with resources is like in Java. You can declare Variables as resources and they will be properly closed automatically by the compiler.
try (BufferedReader reader = Files.reader('input.txt')) {
println(reader.readLine())
} catch (IOException e) {
e.printStackTrace()
}