码迷,mamicode.com
首页 > 编程语言 > 详细

Java中的异常处理

时间:2020-02-17 12:39:32      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:row   程序   类库   常用   数组下标   ini   无法   两种   pointer   

  在Java的库中声明了许多异常类,每个异常类都代表一种运行错误,在每个异常类中都包含该运行错误的信息和解决错误的方法。Java中对异常的处理方法有两种:一是不处理该异常,将其抛给调用方法,若所有方法都跑出异常,则由Java虚拟机捕获,终止程序并输出错误信息;二是捕获该异常并处理。

 

一.异常与错误的区别

  错误是致命性的,程序无法处理。Error类是所有错误类的超类。

  异常是非致命性的,可以通过程序捕获处理。Exception类为所有异常类的超类。

  异常分为如下两类:

1.非检查性异常:不期望程序捕获的异常,在方法中不需要声明,编译器也不进行检查。继承自RuntimeException,可能会在代码块中经常出现。

2.检查性异常:调用者必须要捕获或者声明抛出的异常。编译器需要进行检查。

 

二.预定义的异常类型

1.ArithmeticException:整数除法中除数为0

2.NullPointerException:访问对象还没有实例化

3.NegativeArraySizeException:创建数组时元素个数为负

4.ArrayIndexOutOfBoundsException:访问数组元素时,数组下标越界。

以上为非检查性异常,以下为检查型异常

5.ArrayStoreException:程序试图向数组中存取错误类型的数据

6.FileNotFoundException:试图存取一个不存在的文件

7.IOException:通常的I/O错误

 

三.异常的捕获

  Java中使用try{}catch{}语句捕获异常,其基本语法为:

try{
	statements(s)//可能会产生异常的代码块
}catch(exceptiontype name){
	statements(s)//异常处理语句:常用getMessage()-返回一个字符串,对发生的异常进行描述
				 //               printStackTrace()-给出方法的调用序列,一直到异常的产生位置
}finally{
	statements(s)//释放内存以外的资源,无论是否产生异常都会运行
}

  其中若有多个catch语句并列,则一般的异常(如超类)需要放到后面,特殊的异常(如子类)需要放到前面。

 

四.异常的生成

  异常对象必须是Throwable或其子类的实例,异常的生成一共有三种方式:

1.由Java虚拟机生成;

2.由Java类库中的某些类生成;

3.自己写的程序中自定义生成,必须是Exception的子类;

声明语法如下:

public class MyExceptionName extends SuperclassOfMyException{
	public MyExceptionName(){
		super("Some string explaining the exception");
	}
}

  

 

 

  

Java中的异常处理

标签:row   程序   类库   常用   数组下标   ini   无法   两种   pointer   

原文地址:https://www.cnblogs.com/thwyc/p/12320926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!