JavaSE_42th_异常

一、异常的概念
1)Java异常是Java提供的用于处理程序中错误的一些机制。
2)所谓错误是指在程序运行过程中发生的一些异常事件(如:除0,
数组下标越界,所要读取的文件不存在)。
3)设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的
发生而阻断或产生不可预见的结果。
4)Java程序的执行过程中如出现异常事件,则会生成一个异常类对象,该异常对象封装了异常事件的
信息并提交给Java运行时系统,这个过程称为抛出(throw)异常。
5)当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,
这一过程称为捕获(catch)异常。
6)举例:
package com.hpe.exception;

public class TestEx {
	public static void main(String[] args) {
		try {
			System.out.println(2/0);			
		} catch (ArithmeticException e) {
			System.out.println("您好,除数不能为0");
		}
		
		try {
			int[] arr = {1, 2, 3};
			System.out.println(arr[5]);
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("您好,数组下标越界了");
			e.printStackTrace();
		}
	}
}
运行结果:
您好,除数不能为0
您好,数组下标越界了
java.lang.ArrayIndexOutOfBoundsException: 5
	at com.hpe.exception.TestEx.main(TestEx.java:13)
总结:
1)try {}中写有可能会出现异常的语句,catch() {}中写的是当try语句中的代码发生异常后,要进行相应处理的代码。
2)如果不使用try-catch语句对可能发生异常的代码进行捕获,那么当发生异常时,程序就会终止,使用了try-catch语句
后,如果发生异常,只要在catch中不执行退出程序,程序依然可以继续运行。
3)异常对象通过调用printStackTrace方法,可以打印异常的详细信息。
4)
try {
	someMethod();	//调用该方法时试图捕获异常
} catch (SomeException e) {
	//异常处理代码
}
5)方法可以抛出异常

/* 声明该方法可能抛出的异常 */
public void someMethod() throws SomeException {


	if(someCondition()) {
		throw new SomeExcetion("错误原因");	//构造并抛出异常对象
	}
}

二、异常的分类
1、JDK中定义了很多异常类,这些类对应了各种各样可能出现的异常事件。
(可抛出的)
Throwable-----|
              |--Error(错误,Java虚拟机的错误,无法处理)
              |
              |--Exception--|(异常,可以处理的)
                            |
                            |--RuntimeException(运行时异常,可以不处理)
                            |
                            |--如IOException等,这些是JDK中往外抛的异常(该类异常必须处理)
1)Error:称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。
2)Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要
用户显式的声明或捕获。
3)RuntimeException:一类特殊的异常,如被0除、数组下标越界等,其产生比较频繁,
处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率产生很大影响。
因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不处理)
Exception
	ClassNotFoundException
	IOException
	InterruptedException
	RuntimeException
		ArithmeticException
		IndexOutOfBoundsException
			ArrayIndexOutOfBoundsException
			StringIndexOutOfBoundsException




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值