Java学习笔记-异常

来源:互联网 发布:新浪微博淘宝版入口 编辑:程序博客网 时间:2024/06/04 17:41

      -----------android培训java培训、java学习型技术博客、期待与您交流!------------

 

1.异常:

什么是异常:就是在程序运行时出现的不正常情况。

程序可能出现的错误或问题

               用户输入错误导致的异常:如用户不正常使用程序,输入一些非法参数

               设备硬件等发生的错误:如硬盘损坏等

               物理限制:如存储空间不足等

               代码错误:在程序编写的方法可能不正确,返回错误参数等。

 

异常分为可处理异常(Exception)和不可处理异常(Error)

异常体系:
 Throwable
  |--Error//不可处理的异常
  |--Exception//可处理异常
   |--RuntimeException//异常中的特殊类,运行时异常,在函数中抛异常,可以不用在函数上声明

2.处理异常的几种方法:

(1)try{

要处理的代码

}catch(异常类 变量){

处理异常的代码

}finally{

一定会执行的语句

}

 

(2)try{

要处理的代码

}catch(异常类 变量){

处理异常的代码

}//或者多个catch块,出现多个catch块时父类异常要在最下边。

 

(3)try{

要处理的代码

}finally{

一定会执行的语句

}

 

(4)异常还可以在函数上抛出,可以抛多个异常用,号隔开

代码示例:

package ThrowableTest;public class TryTest {public static void main(String [] args){try {int s =get(4,0);System.out.println(s);} catch (ArithmeticException e) {//try{}catch(){}处理异常e.printStackTrace();}finally{//一定会被执行的代码,只有遇到system.exit(0)时才不会被运行System.out.println("over");}}public static int get(int x,int y)throws ArithmeticException{//在函数上声明异常用throws关键字return x/y;}}

运行结果:

java.lang.ArithmeticException: / by zero
 at ThrowableTest.TryTest.get(TryTest.java:15)
 at ThrowableTest.TryTest.main(TryTest.java:6)
over

3.自定义异常

继承Exception异常或RuntimeException异常

(1)为了让该类具备可抛性

(2)该类具备操作异常的共性方法。

代码示例:

class ZiDingYiException extends Exception  {      private String msg;      ZiDingYiException(String msg)  {
          super(msg);//将会返回输入的信息        }  }  


 

4.throw与throws的区别

throw定义在函数内,用于抛出异常对象。

        throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。

        当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。

        注意:RuntimeException除外。

5.可处理异常分两种:

(1)编译时被检测的异常

(2)编译时不被检测的异常(RuntimeException)如果在函数内抛的是RuntimeException异常及子类,函数上可以不必声明。

6.异常在子父类覆盖中的体现:

子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。

如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。

      -----------android培训java培训、java学习型技术博客、期待与您交流!------------


 

0 0
原创粉丝点击