When executing a program, abnormal conditions can occur, which force the Julia runtime to throw an exception or error, show the exception message and the line where it occurred, and then exit. For example (follow along with the code in chapter 4\errors.jl
):
Using the wrong index for an array, for example,
arr = [1,2,3]
and then asking forarr[0]
causes a program to stop withERROR: BoundsError()
Calling
sqrt()
on a negative value, for example,sqrt(-3)
causesERROR: DomainError: sqrt will only return a complex result if called with a complex argument, try sqrt(complex(x))
; Thesqrt(complex(-3))
function gives the correct result0.0 + 1.7320508075688772im
A syntax error in Julia code will usually result in
LoadError
Similar to these there are 18 predefined exceptions that Julia can generate (refer to http://docs.julialang.org/en/latest/manual/control-flow/#man-exception-handling). They are all derived from a base type, Exception
.
How can you signal an error condition yourself...