异常处理

一、概念:


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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值