zoukankan      html  css  js  c++  java
  • java 缺憾:异常的丢失

    一.java的异常实现也是又缺陷的,异常作为程序出错的标志决不能被忽略,但它还是可能被轻易地忽略.下了可以看到前一个异常还没处理就抛出下一个异常,没有catch捕获异常,它被finally抛出下一个异常所取代

    //: exceptions/LostMessage.java
    // How an exception can be lost.
    package object;
    class VeryImportantException extends Exception {
      public String toString() {
        return "A very important exception!";
      }
    }
    
    class HoHumException extends Exception {
      public String toString() {
        return "A trivial exception";
      }
    }
    
    public class LostMessage {
      void f() throws VeryImportantException {
        throw new VeryImportantException();
      }
      void dispose() throws HoHumException {
        throw new HoHumException();
      }
      public static void main(String[] args) {
        try {
          LostMessage lm = new LostMessage();
          try {
            lm.f();
          } finally {
            lm.dispose();
          }
        } catch(Exception e) {
          System.out.println(e);
        }
      }
    } /* Output:
    A trivial exception
    *///:~

    二.在finally中加入return语句,没有用catch语句捕获异常,下面这种情况编译器会报警:finally块未正常完成

    package exceptions;
    //: exceptions/ExceptionSilencer.java
    
    public class ExceptionSilencer {
      public static void main(String[] args) {
        try {
          throw new RuntimeException();
        } finally {
          // Using 'return' inside the finally block
          // will silence any thrown exception.
          return;
        }
      }
    } ///:~
  • 相关阅读:
    PAT A1060——string的常见用法详解
    题解-ZJOI2015地震后的幻想乡
    题解-富有物理组的风采
    题解-概率计算器
    题解-CodeForces835F Roads in the Kingdom
    题解-hdu2866 Special Prime
    题解-poj3682King Arthur's Birthday Celebration
    题解-拉格朗日(bzoj3695变种)
    题解-ZeroJudge-c686 高斯符號
    其他-几道物理题
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/10298636.html
Copyright © 2011-2022 走看看