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)航:
           
          主站蜘蛛池模板: 澄江县| 扶沟县| 辽源市| 牙克石市| 泗洪县| 平陆县| 吉木萨尔县| 辛集市| 英山县| 常熟市| 临高县| 曲麻莱县| 临朐县| 保康县| 南江县| 思南县| 常德市| 长葛市| 广州市| 祁东县| 威远县| 夏津县| 乌拉特中旗| 长岛县| 二连浩特市| 镇宁| 炎陵县| 朔州市| 格尔木市| 确山县| 青龙| 潜山县| 文昌市| 通辽市| 兴业县| 东乡族自治县| 黎平县| 广平县| 汤原县| 柘城县| 越西县|