Java provides programmers with capability to elegantly handle runtime errors.

          1. Throwable has two subclasses: Exception and Error.

          RuntimeException, Error and their subclasses are known as unchecked exceptions. All other exceptions are known as checked exceptions, meansing that the compiler forces the programmer to check and deal with them.

          2. Handling Expections
          (1) Declearing Exceptions
          use throws keyword
          public void myMethod() throws Exception1, Exception2, ...
          (2) Throwing Exceptions
          IllegaArgumentException ex = new IllegaArgumentException("Wrong Argument");
          or
          throw new IllegaArgumentException("Wrong Argument");
          (3) Catching Exceptions
          try {
          statements;
          }
          catch (Exception1 exVar1) {
          handler1;
          }
          catch (Exception2 exVar2) {
          handler2;
          }
          ...
          Note that Exceptioni can't be subclass of Exceptionj (i
          When handling exceptions, java.lang.Throwable.getMessage()/toString()/printStackTrace() are useful.
          3. Rethrowing
          try
          {
          access the database
          }
          catch (SQLException e)
          {
          throw new ServletException("database error: " + e.getMessage());
          }
          4. the finally clause
          Graphics g = image.getGraphics();
          try
          {
          // 1
          code that might throw exceptions
          // 2
          }
          catch (IOException e)
          {
          // 3
          show error dialog
          // 4
          }
          finally
          {
          // 5
          g.dispose();
          }
          the code in the finally block is executed under all circumstances, regardless of whether an exception occures in the try block is caught.
          5. Don't use a try-catch block to deal with simple, expected situations.
          6. creating custon exception classes
          7. Assertions
          Assertions can be used to ensure program correctness and avoid logic errors.
          assert assertion [: detailMessage];
          detailMessage can a primitive-type or an Object value.
          When an assertion statement is executed, Java evaluates the assertion. If it is false, an AssertionError will be thrown
          By default, assertions are disabled at runtime. To enable them, use
          java -ea AssertionDemo
          Assertions can be selectively enabled or disabled at the class level or the package level.
          java -ea:package1 -da:Class1 AssertionDemo
          8. Don't use assertions for argument checking in public methods.Instead, exception handling is needed.
          Use assertions to reaffirm assumption to increase your confidence in the programme's correctness.
          if (number < 1) {
          ...
          }
          else if (number = 1) {
          ...
          }
          else assert false : number;
          switch (month) {
          case 1: ...; break;
          case 2: ...; break;
          ...
          case 12: ...; break;
          default: assert false : "Invalid monthL " + month
          }

          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2.13 Java notes - Exceptions and Assertions

          Posted on 2007-04-22 20:23 ZelluX 閱讀(175) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-02-13 22:20:55
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 宜川县| 资讯 | 米泉市| 高平市| 甘洛县| 琼中| 靖宇县| 江口县| 西藏| 通州市| 闸北区| 南漳县| 肇源县| 沙洋县| 准格尔旗| 昌图县| 基隆市| 陇南市| 衡阳县| 宁陵县| 汾西县| 三原县| 海城市| 革吉县| 临海市| 嘉定区| 新兴县| 尼勒克县| 云梦县| 武山县| 慈溪市| 尼木县| 正宁县| 昌图县| 奉贤区| 即墨市| 常宁市| 尉氏县| 郸城县| 资溪县| 江山市|