【 ¥O。无所谓好与坏 …… 用心了就足够了·】

向孙老师学习java第六天

上一篇 / 下一篇  2007-10-28 00:37:05 / 个人分类:Java

1.error:严重的错误,例如,内存溢出,AWT错误。exception:异常。轻微的错误。

2.类Exception派生自java.lang.throwable。

3.异常处理:try...catch语句。
class exception{
int division(int a,int b){
 return a/b;
 }
}
class exceptest{
 public static void main(String[] args){
 exception exp=new exception();
 try{                              //try里面放的都是可能异常的句子
 exp.division(5,0);
 System.out.println("except");     //这句不会被执行,因为上面这句出异常之后,会产生异常对象以及一些异常信息,然后跳到catch,将这些异常信息交到参数i处理。
  }
 catch(Exception i){                 //这里的Exception是固定的类用法,注意大写。i是传递的一个参数,跟函数里的一样。
 System.out.println(i.getMessage());  //这里就是通过java.lang.throwable下的方法getMessage()来获取这样一个异常的信息
 System.out.println(i.toString());   //同上,只不过toString()方法打印出的是简短的异常信息
 e.printStackTrace();       //这句是直接在屏幕上打出出错的位置。由于printStackTrace()返回的是void类型,本身就有打印到屏幕的功能,所以不用System.out.println
}
System.out.println("finish");     //try..catch处理完了,会跳到这里执行,如果没有try..catch,就不会执行这一句,而是直接中断。
 }
}

3.class exception{                  //异常处理也可以写在开始的地方。
int division(int a,int b){
 try{
 return a/b;
  }
 catch(Exception i){
 System.out.println(i.toString());
 return 0;           //因为上面的return是先执行a/b的,再执行return,所以,还没等到return就出错交到catch了,所以就没有返回值了。所以在这里要增加一个return 0;来返回值。
 }                    //retuen 0没有特别的意思,只是代表程序成功执行结束。本质上跟return 100什么的没有区别。
 (return 0;)//写这里也可以的。
 }
}

4.throw 与 throws的区别与联系(转自:coollinux——酷linux博客)

区别一:throw 是语句抛出一个异常;throws 是方法抛出一个异常;

throw语法:throw <异常对象>

在方法声明中,添加throws子句表示该方法将抛出异常。

throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]

其中:异常类可以声明多个,用逗号分割。
例如:public String getXXXX() throws Exception,IOException
这段代码说明 getxxxx 方法可能会抛出Exception或IOException两种类型的错误。

区别二:throws可以单独使用,但throw不能;

区别三:throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。


大家也许在编程的过程中,会意识到这里出错,但不知道会抛出什么异常,也是一件头疼的事,现将这部分总结如下:

算术异常类:ArithmeticExecption

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

数组负下标异常:NegativeArrayException

数组下标越界异常:ArrayIndexOutOfBoundsException

违背安全原则异常:SecturityException

文件已结束异常:EOFException

文件未找到异常:FileNotFoundException

字符串转换为数字异常:NumberFormatException

操作数据库异常:SQLException

输入输出异常:IOException

方法未找到异常:NoSuchMethodException

5.catch可以有多个。throws也可以抛出多个。有throws就可以不捕获,由java系统来解决。因此,调试的时候经常用到throws

6.通常runtimeexception,不需要我们去捕获,java系统会自动抛出并处理。

7.finally:写在try..catch后面,无论是否有异常,都执行finally里的语句。通常在软件运行出现异常的时候,为了释放资源的时候用。但在重大错误的时候,我们为了退出,就用到System.exit(-1);语句,无条件退出,这时候,finally也不会执行。

8.我们也可以自己定义异常类的派生类。
class d extends Exception{

}


TAG: Java

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-07-03  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 6753
  • 日志数: 55
  • 图片数: 1
  • 建立时间: 2007-01-02
  • 更新时间: 2008-01-03

RSS订阅

Open Toolbar