异常处理

来源:互联网 发布:程序员刚入职很痛苦 编辑:程序博客网 时间:2024/04/28 02:25

一、概念:


Throwable------------->异常体系中的超类(父类)

1、异常:(Exception)程序出现问题,程序员所不能控制的。

常见几种异常有:

(1)NullPointerException

(2)ArrayIndexOutOfBoundsException

(3)ArithmeticException         (算数异常)

(4)ClassCastException       (类型转换异常)

(5)IllegalArgumentException  (非法越界异常)

(6)FillNotFoundException



异常分为两大类

一、运行时异常  RutntimeException

二、编译时异常  (程序在编译过程中必须强制检测的异常)

package huaxin;import javax.swing.JFrame;public class ExceptionTest {public static void main(String[] args){int[] array = new int[10];System.out.println(array[10]);System.out.println(11/0);Object obj = new String("aaa");int i = (int)obj;new JFrame().setDefaultCloseOperation(100);}}


.........

错误:(Error)程序出现严重的问题,程序员设计不当导致的

常见的几种错误有:

(1)StackOverflowError

(2)OutOfmeMoryError



异常的处理

1、throws   异常

(1)写在方法的小括号后面;

(2)每次抛出的异常都有比前一次抛出异常的范围要> =;

2、try  catch

//try catch 为两个单独的区域try{//试着执行try块中的代码,如果出现异常,进入catch块中FileOutputStream fos = new FileOutputStream("z://first.txt");//后续代码(出现异常则不会执行)}catch(FileNotFoundException e){//打印异常栈中的信息(方便程序员阅读)e.printStackTrace();//出现这个异常时,具体的解决办法System.out.println("在我的电脑上找不到此路径");}finally{//最终(不管try catch 的执行与否,最终都会进入finally块)//执行关闭资源(流或数据库连接)的操作System.out.println("-----------finally--------");}}public void study(){study();}


Java程序处理异常的格式如下:

  try{

  //可能出现异常的代码部分

   }catch(异常类型异常变量){

  //执行异常操作

   }catch(异常类型异常变量){

   //执行异常操作

   }…

   finally{

      //处理完trycatch操作后的收尾操作,异常统一出口

   }

异常处理机制:

 (1)一旦产生异常,则系统会自动产生一个异常实例化对象;
 (2)此时如果存在try语句,则会自动找到匹配的catch语句执行,如果没有异常处理,则程序将会退出,系统报告异常在控制台;
( 3)所有异常根据catch方法参数进行匹配异常的实例化对象,如果匹配成功,则由匹配成功的catch语句进行处理;


Ø注意

1.catch定义,由上到下,异常范围必须由小到大或者同级别的

2.运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配。

3.非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。


throw 和throws关键字

(1)Throws关键字主要在方法的声明上使用,表示方法中不处理异常,二交给调用处处理。实际上对于java程序来讲, 如果没有加入任何的异常处理,默认有jvm进行异常的处理操作
(2)Throw关键字表示在程序中手动抛出一个异常,因此从异常处理机制上看,所有的异常一旦产生后,实际上抛出的就是一个异常的实例化对象,name此对象也可以有throw直接抛出
注意:

  运行时异常,在程序中捕捉并throw后,方法中不一定要声明throws,而非运行时异常,在代码快中throw后,必须在方法中声明throws抛出异常




0 0
原创粉丝点击