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 閱讀(177) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-02-13 22:20:55
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 皮山县| 梅河口市| 启东市| 禄丰县| 临湘市| 偃师市| 会东县| 玉门市| 曲阜市| 资阳市| 克拉玛依市| 阿克苏市| 双桥区| 酒泉市| 临西县| 锡林浩特市| 翁牛特旗| 长海县| 扎赉特旗| 司法| 武穴市| 扶沟县| 汤原县| 阿克苏市| 隆安县| 新巴尔虎右旗| 本溪市| 墨脱县| 池州市| 甘谷县| 陆河县| 疏附县| 垦利县| 旬邑县| 三河市| 庆城县| 东城区| 四平市| 新巴尔虎右旗| 墨竹工卡县| 靖江市|