java異常處理機制樣本(java拋出異常、捕獲、斷言)_java

來源:互聯網
上載者:User

這是一個介紹基本異常處理的小例子,包括拋出,捕獲,斷言,日誌。

Java異常處理通過5個關鍵字try、catch、throw、throws、finally進行管理。基本過程是用try語句塊包住要監視的語句,如果在try語句塊內出現異常,則異常會被拋出,你的代碼在catch語句塊中可以捕獲到這個異常並做處理;還有以部分系統產生的異常在Java運行時自動拋出。你也可以通過throws關鍵字在方法上聲明該方法要拋出異常,然後在方法內部通過throw拋出異常對象。

複製代碼 代碼如下:

package com.hongyuan.test;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ExceptionHandleTest {

 static{
  //開啟斷言,此後由系統類別載入器載入的類將啟用斷言。
  ClassLoader.getSystemClassLoader().setDefaultAssertionStatus(true);
 }

 public static void main(String[] args) {
  /*
   * 拋出,捕獲
   */
  try {
   TryCatchTest.run(10, -1);
  } catch (IOException e) {
   e.printStackTrace();
  }
  System.out.println("====================================================");

  //日誌
  LogerTest.run();

  System.out.println("====================================================");
  //斷言
  AssertTest.div(3,0);

 }

}

/*
 * 斷言
 */
class AssertTest {

 public static double div(int b,int a){

  assert a!=0:"你這麼用,你小學老師知道嗎?";

  return (double)b/a;
 }
}

/*
 * 日誌
 */
class LogerTest {

 private static Logger logger=null;

 static{
  //擷取日誌對象並定義記錄層級
  logger=Logger.getLogger(LogerTest.class.getName());
  logger.setLevel(Level.ALL);
 }

 public static void run(){
  //進入方法
  logger.entering(LogerTest.class.getName(), "run");
  //普通訊息
  logger.info("又來找我麻煩,這筆賬我記下了!!!");
  //警告
  logger.warning("太累了,這活沒法幹了!!!");
  //嚴重
  logger.log(Level.SEVERE,"老子不幹了!!! ^O^");
  //退出方法
  logger.exiting(LogerTest.class.getName(), "run");
 }
}

/*
 * 捕獲,拋出
 */
class TryCatchTest {

 public static void run(int x,int y) throws IOException {

  try{//必須

   if(x<0||y<0){
    throw new IllegalArgumentException("無語了,這讓我怎麼辦啊!!!");
   }

  }catch(Exception e){//可選

   IOException e1=new IOException("你自己看著辦吧!");
   e1.initCause(e.getCause());

   throw e1;
  }finally{//可選

   System.out.println("最後他們過上了幸福的生活!!!!(完)");
  }
 }
}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.