Java_exception

RuntimeException#

  • You never need to write an exception specification saying that a method might throw a RuntimeException,
    because they are unchecked exceptions. it's dealt with automatically.

  • Keep in mind that only exceptions of type RuntimeException can be ignored in your coding

  • finally return之前仍然会执行


Pitfall#

  • It's possible for an exception to simply be lost.

This happens with a particular configuration using a finally clause

    public static void main(String[] args) {
    try {
        LostMessage lm = new LostMessage();
        try {
        lm.f();
        } finally {
        lm.dispose();  //throw another exception will be         
                          replace the former exception
        }
        } catch(Exception e) {
        System.out.println(e);
        }
    }
    
  • An even simpler way to lose an exception is just to return from inside a finally clause:
    public static void main(String[] args) {
    try {
            throw new RuntimeException();
        } finally {
        // Using ‘return’ inside the finally block
        // will silence any thrown exception.
        return;
        }
    }
    

你可能感兴趣的:(Java_exception)