19.09.2015 Views

Prentice.Hall.Introduction.to.Java.Programming,.Brief.Version.9th.(2014).[sharethefiles.com]

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

14.3 Exception Types 525<br />

■ Runtime exceptions are represented in the RuntimeException class, which<br />

describes programming errors, such as bad casting, accessing an out-of-bounds<br />

array, and numeric errors. Runtime exceptions are generally thrown by the JVM.<br />

Examples of subclasses are listed in Table 14.3.<br />

runtime exception<br />

TABLE 14.3<br />

Class<br />

Examples of Subclasses of RuntimeException<br />

Reasons for Exception<br />

ArithmeticException<br />

NullPointerException<br />

IndexOutOfBoundsException<br />

IllegalArgumentException<br />

Dividing an integer by zero. Note that floating-point arithmetic<br />

does not throw exceptions (see Appendix E, Special Floating-<br />

Point Values).<br />

Attempt <strong>to</strong> access an object through a null reference variable.<br />

Index <strong>to</strong> an array is out of range.<br />

A method is passed an argument that is illegal or inappropriate.<br />

RuntimeException, Error, and their subclasses are known as unchecked exceptions. All<br />

other exceptions are known as checked exceptions, meaning that the <strong>com</strong>piler forces the<br />

programmer <strong>to</strong> check and deal with them in a try-catch block or declare it in the method<br />

header. Declaring an exception in the method header will be covered in Section 14.4.<br />

In most cases, unchecked exceptions reflect programming logic errors that are unrecoverable.<br />

For example, a NullPointerException is thrown if you access an object through a<br />

reference variable before an object is assigned <strong>to</strong> it; an IndexOutOfBoundsException is<br />

thrown if you access an element in an array outside the bounds of the array. These are logic<br />

errors that should be corrected in the program. Unchecked exceptions can occur anywhere in<br />

a program. To avoid cumbersome overuse of try-catch blocks, <strong>Java</strong> does not mandate that<br />

you write code <strong>to</strong> catch or declare unchecked exceptions.<br />

14.7 Describe the <strong>Java</strong> Throwable class, its subclasses, and the types of exceptions.<br />

14.8 What RuntimeException will the following programs throw, if any?<br />

unchecked exception<br />

checked exception<br />

✓Point✓ Check<br />

public class Test {<br />

public static void main(String[] args) {<br />

System.out.println(1 / 0);<br />

}<br />

}<br />

(a)<br />

public class Test {<br />

public static void main(String[] args) {<br />

String s = "abc";<br />

System.out.println(s.charAt(3));<br />

}<br />

}<br />

(c)<br />

public class Test {<br />

public static void main(String[] args) {<br />

Object o = null;<br />

System.out.println(o.<strong>to</strong>String());<br />

}<br />

}<br />

(e)<br />

public class Test {<br />

public static void main(String[] args) {<br />

int[] list = new int[5];<br />

System.out.println(list[5]);<br />

}<br />

}<br />

(b)<br />

public class Test {<br />

public static void main(String[] args) {<br />

Object o = new Object();<br />

String d = (String)o;<br />

}<br />

}<br />

(d)<br />

public class Test {<br />

public static void main(String[] args) {<br />

System.out.println(1.0 / 0);<br />

}<br />

}<br />

(f)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!