Java Reference
In-Depth Information
Division by
0
is not defined, so the attempt to divide by
0
is an error. Java han-
dles this error by
throwing an exception
, which causes the program to terminate
abnormally with the following messages in the Java console:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Ex.main(Ex.java:3)
(The first part of the first line, which says that an exception occurred in thread
main, may be missing.) The important information on the first line is that an
ArithmeticException
occurred, a division by zero. The second line says where
the exception occurred: in method
main
of class
Ex
, on line three of file
Ex.java
.
The information following the second line (if present) is not important for
understanding the reason for program termination, and you can disregard it.
The call-stack trace
When the program aborts because of an exception, you have to study it to
find out why and correct the error. The messages in the Java console tell you the
kind of
Exception
that occurred and the method being executed at the time, and
this can be helpful. But the Java console contains more. To illustrate, we change
the program so that the division by
0
occurs within a different method:
public class
Ex {
public static void
main(String[] args)
{ first(); }
public static void
first()
{ second(); }
public static void
second()
{ System.out.println(5 / 0); }
}
Suppose method
main
is called. Method
main
calls method
first
, which
calls method
second
, which attempts to divide by
0
.
This list of calls that have been started but have not completed is called the
call stack
. When the attempt to divide by zero occurs, the same exception is
thrown, and the following appears in the Java console:
java.lang.ArithmeticException: / by zero
at Ex.second(Ex.java:7)
at Ex.first(Ex.java:5)
at Ex.main(Ex.java:3)
As before, the first line says that an
ArithmeticException
occurred, a division
by zero. The second line says that the
Exception
occurred in method
second
, at
line seven of file
Ex.java
. The third line says that method
second
was called
from method
first
, and the fourth line says that
first
was called from
main
.
Thus, when an
Exception
occurs:
Search WWH ::
Custom Search