Error Handling
Program Invocations
When a program returns a non-zero exit code, an exception is thrown. The exception can be handled as described in Catching.
Exceptions
Throwing
An exception can be thrown with the throw
expression. The given value will be cast into an Error
object, if it isn't one already.
elk
throw "An error occurred"
throw "An error occurred"
Catching
An exception can be caught with the try
/catch
expression. When an exception is about the be caught, the first valid catch
arm will be evaluated. The with <type>
syntax is used to specify which kinds of values should be caught, based on the value inside the Error
object.
The value of an Error
object can be retrieved using the error::value
function.
elk
try {
ls abc
...
} catch e with SomeStruct {
println SomeStruct Error: ${error::value(e)}
} catch e {
println Error: ${error::value(e)}
}
try {
ls abc
...
} catch e with SomeStruct {
println SomeStruct Error: ${error::value(e)}
} catch e {
println Error: ${error::value(e)}
}