异常的捕获与处理

Java提供了try(尝试)、catch(捕捉)、finally(最终)这三个关键字来处理异常。在处理各种异常时,需要用到对应的异常类,指的是由程序抛出的对象所属的类。

一、异常处理的使用

由于finally块是可以省略的,异常处理格式可以分为三类:try{ }——catch{ }、try{ }——catch{ }——finally{ }、try{ }——finally{ }。

 1 public class DealException
 2 {
 3     public static void main(String args[])
 4     {
 5         try
 6         //要检查的程序语句
 7         {
 8             int a[] = new int[5];
 9             a[10] = 7;//出现异常
10         }
11         catch(ArrayIndexOutOfBoundsException ex)
12         //异常发生时的处理语句
13         {
14             System.out.println("超出数组范围!");
15         }
16         finally
17         //这个代码块一定会被执行
18         {
19             System.out.println("*****");
20         }
21         System.out.println("异常处理结束!");
22     }
23 }

可以看出,在异常捕捉的过程中要进行两个判断,第一是try程序块是否有异常产生,第二是产生的异常是否和catch()括号内想要捕捉的异常相同。

那么,如果出现的异常和catch()内想要捕捉的异常不相同时怎么办呢?事实上我们可以在一个try语句后跟上多个异常处理catch语句,来处理多种不同类型的异常。

 1 public class DealException
 2 {
 3     public static void main(String args[])
 4     {
 5         try
 6         //要检查的程序语句
 7         {
 8             int a[] = new int[5];
 9             a[0] = 3;
10             a[1] = 1;
11             //a[1] = 0;//除数为0异常
12             //a[10] = 7;//数组下标越界异常
13             int result = a[0]/a[1];
14             System.out.println(result);
15         }
16         catch(ArrayIndexOutOfBoundsException ex)
17         //异常发生时的处理语句
18         {
19             System.out.println("数组越界异常");
20             ex.printStackTrace();//显示异常的堆栈跟踪信息
21         }
22         catch(ArithmeticException ex)
23         {
24             System.out.println("算术运算异常");
25             ex.printStackTrace();
26         }
27         finally
28         //这个代码块一定会被执行
29         {
30             System.out.println("finally语句不论是否有异常都会被执行。");
31         }
32         System.out.println("异常处理结束!");
33     }
34 }

上述例子中ex.printStackTrace();就是对异常类对象ex的使用,输出了详细的异常堆栈跟踪信息,包括异常的类型,异常发生在哪个包、哪个类、哪个方法以及异常发生的行号。

二、throws关键字

时间: 2024-10-27 02:11:10

异常的捕获与处理的相关文章

第十九节(异常的基本概念, 异常的分类, 异常的捕获和处理,自定义异常,方法覆盖与异常)

1: Java 异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 异常发生的原因有很多,通常包含以下几大类: 1. 用户输入了非法数据. 2. 要打开的文件不存在. 网络通信时连接中断,或者JVM内存溢出.这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的. 要理解Java异常处理是如何工作的,要掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的.例如要打开一个不

JAVA学习-异常的捕获及处理

1.认识异常(了解) 异常指的是导致程序中断的一种指令流.那么下面先通过两个程序来比较程序出现异常与没有出现异常的区别. 范例:程序不出现异常 public class TestDemo { public static void main(String args[]) { System.out.println("1.除法计算开始.") ; System.out.println("2.除法计算:" + (10 / 2)) ; System.out.println(&q

Java中异常的捕获顺序(多个catch)(

Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IOException{ System.out.println("do somthing"); } public static void main(String[] args){ ExceptionTryCatchTest et = new ExceptionTryCatchTe

Java入门——异常的捕获与处理

Java入门——异常的捕获与处理 在没有异常处理的语言中,通常需要大量的判断语句,配合所想到的错误来捕获程序中所有可能发生的错误.充分利用Java的异常处理机制,以增进程序的稳定性和效率. Java的异常处理机制 一旦产生异常,则首先会产生一个异常类的实例化对象. 在try语句中对此异常对象进行捕获. 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码. finaly是异常的统一出口,一定会执行. 所有的子类实例全部可由父类接收,利用向上转型的概念

[转载]Java中异常的捕获顺序(多个catch)

http://blog.sina.com.cn/s/blog_6b022bc60101cdbv.html [转载]Java中异常的捕获顺序(多个catch) (2012-11-05 09:47:28) 转载▼ 标签: 转载 分类: 转载 原文地址:Java中异常的捕获顺序(多个catch)作者:leesa Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething(

java之异常的捕获及处理

在java中程序的错误主要是语法错误和语义错误(也就是逻辑错误). java中异常处理语句的格式: try{ //有可能出现异常的语句 }catch(异常类 异常对象){ //编写异常的处理语句 }catch(异常类 异常对象){ //编写异常的处理语句 }finally{ 一定会运行的代码: } 在java的异常结构中,有两个最常用的类,分别是Exception和Error,都是Throwable的子类. Exception:一般表示的是程序中出现的问题,可以直接使用try....catch处

异常的捕获和处理

1.什么是异常?如何捕获异常?异常:描述出出错信息得而对象普货异常用try{}catch(){} 2.异常的类结构是怎样的?错误和异常各自有什么特点?异常的api结构throw有两个子类:error(错误),exception(异常)try catherror是错误的父类,错误可以捕获,但不能处理,一般反生崩溃机的情况excption是所有异常的父类,异常可以捕获也可以处理. 3.异常执行的顺序是怎样的?先执行try块中的内容,顺序执行,如果try块中有异常发生,那么转去catch块执行,同时终

异常课——捕获

//异常课件——捕获 package class10923; public class yichang1ke { public static void main(String[] args) { // //算术异常 // int i=10/0; //抓住异常 //看是否有异常,如果有异常执行catch,没有异常正常执行try内容 try { //空指针异常 //对象没有被实例化就去调用对象的实例方法 String str=null; str.trim();//空指针异常位置 } //捕获 cat

Java中多个异常的捕获顺序(多个catch)

Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IOException{ System.out.println("do somthing"); } public static void main(String[] args){ ExceptionTryCatchTest etct = new ExceptionTryCatch

Java异常的捕获和处理(一)

一.异常的捕获和处理 KEY WORDS : try, catch, finally, throw, throws. (一)syntax(代码) try{ //需要运行的代码 }catch(异常类型 异常变量名){ //异常处理代码 }finally{ //异常发生,方法返回之前,需要执行的代码 } (二)不同语句块的特点 1.try (1)表示尝试运行代码,受异常监控. (2)当此语句块代码发生异常时,抛出异常对象.//不太明白此处的抛出对象是什么意思? 2.catch (1)当try语句块中