A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© GYSWL 中级黑马   /  2014-8-20 18:49  /  833 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

目标黑马……努力ing……
1.异常是什么?
  第一,异常模拟的是现实世界中“不正常的”事件。
  第二,java中采用“类”去模拟异常。
  第三,类是可以创建对象的。例如:
   NullPointerException e = 0x1234;
   e是引用类型,e中保存的内存地址指向堆中的“对象”
   这个对象一定是NullPointerException类型。
   这个对象就表示真实存在的异常事件。
   NullPointerException是一类异常。
   
2.异常机制的作用?
  java语言为我们提供一种完善的异常处理机制,
  作用是:程序发生异常事件之后,为我们输出详细的信息,
  程序员通过这个信息,可以对程序进行一些处理,使程序
  更加健壮。

处理异常有两种方式:
  1.声明抛出  throws
  2.捕捉 try...catch..

以下程序演示第一种方式:声明抛出,在方法声明的位置上使用throws关键字向上抛出异常。
  1. <font color="black">import java.io.*;
  2. public class ExcetionTest{

  3.         public static void main(String[] args){
  4.                 try{
  5.                         m1();
  6.                 }catch(FileNotFoundException e){
  7.                         System.out.println("m1处理异常!");
  8.                 }
  9. //使用throws处理异常不是真正处理异常而是推卸责任。
  10.                 //谁调用的就会抛给谁。
  11.                 //上面的m1方法如果出现了异常,如果采用的throws上抛,给了JVM,JVM遇到这个异常就会退出JVM,下面的这个代码不会执行.
  12.                 //System.out.println("Hello World");
  13.         }


  14.                 //使用throws处理异常谁调用的就会抛给谁。
  15.         public static void m1()throws FileNotFoundException{
  16.                
  17.                 m2();       
  18.         }
  19.         //使用throws处理异常谁调用的就会抛给谁。
  20.         public static void m2()throws FileNotFoundException{
  21.                 m3();
  22.         }
  23.         //使用throws处理异常谁调用的就会抛给谁。
  24.         public static void m3()throws FileNotFoundException{
  25.                 new FileInputStream("c:/a.txt");
  26.         }
  27. }
  28. </font>
复制代码
处理异常的第二种方式:捕捉.. try...catch...

  语法:
   try{
   
    可能出现异常的代码;
   
   }catch(异常类型1 变量){
   
    处理异常的代码;
   
   }catch(异常类型2 变量){
   
    处理异常的代码;
   
   }....
  
  1.catch语句块可以写多个.
  2.但是从上到下catch,必须从小类型异常到大类型异常进行捕捉。
  3.try...catch...中最多执行1个catch语句块。执行结束之后try...catch...就结束了。


  1. <font color="black">
  2. </font><p><font color="black"> import java.io.*;</font></p><p><font color="black">public class ExceptionTest05{

  3. public static void main(String[] args){
  4.   
  5.   //以下代码编译无法通过,因为FileNotFoundException没有处理.
  6.   /*
  7.   try{
  8.    
  9.    //FileNotFoundException
  10.    FileInputStream fis = new FileInputStream("c:/ab.txt");
  11.    
  12.   }catch(ArithmeticException e){ //捕获的异常是算术异常
  13.   }
  14.   */
  15.   
  16.   //编译通过
  17.   /*
  18.   try{
  19.    
  20.    //FileNotFoundException
  21.    FileInputStream fis = new FileInputStream("c:/ab.txt");
  22.    
  23.   }catch(FileNotFoundException e){
  24.    
  25.   }
  26.   */
  27.   
  28.   
  29.   //以下程序编译无法通过
  30.   //因为还有更多IOException没有处理.
  31.   /*
  32.   try{
  33.    
  34.    //FileNotFoundException
  35.    FileInputStream fis = new FileInputStream("c:/ab.txt");
  36.    
  37.    fis.read();
  38.    
  39.   }catch(FileNotFoundException e){
  40.    
  41.   }
  42.   */
  43.   
  44.   
  45.   //编译可以通过
  46.   
  47.   try{
  48.    
  49.    //FileNotFoundException
  50.    FileInputStream fis = new FileInputStream("c:/ab.txt");
  51.    
  52.    fis.read();
  53.    
  54.   }catch(FileNotFoundException e){
  55.    
  56.   }catch(IOException e){
  57.   
  58.   }
  59.   
  60.   
  61.   
  62.   //编译通过.
  63.   /*
  64.   try{
  65.    
  66.    FileInputStream fis = new FileInputStream("c:/ab.txt");
  67.    
  68.    fis.read();
  69.    
  70.   }catch(IOException e){
  71.   
  72.   }
  73.   */
  74.   
  75.   //编译无法通过
  76.   //catch可以写多个,但是必须从上到下,从小到大捕捉。
  77.   /*
  78.   try{
  79.    
  80.    FileInputStream fis = new FileInputStream("c:/ab.txt");
  81.    
  82.    fis.read();
  83.    
  84.   }catch(IOException e){
  85.    
  86.   }catch(FileNotFoundException e){
  87.   
  88.   }
  89.   */
  90.   
  91.   
  92. }

  93. }</font></p>
复制代码
以上内容是本人学习笔记,0基础自学,难免有错,希望指出有错地方,成长自己也提高别人……

2 个回复

倒序浏览
总结不错,又巩固一下。
回复 使用道具 举报
路过 学一遍
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马