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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2.13 Java notes - Exceptions and Assertions

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大理市| 广南县| 红河县| 高碑店市| 无锡市| 台中县| 湘乡市| 双城市| 涞源县| 罗源县| 玉山县| 永仁县| 麦盖提县| 海城市| 玉田县| 库尔勒市| 邹城市| 武穴市| 布拖县| 分宜县| 北宁市| 镇巴县| 田东县| 高淳县| 吴忠市| 安宁市| 莱阳市| 台东县| 周口市| 武安市| 泰安市| 清原| 霸州市| 鲁山县| 隆安县| 深水埗区| 通化县| 东方市| 石门县| 文登市| 蕲春县|