<JAVA>总结实录01 : 异常处理 try-catch-finally

本来课程学习中对异常处理机制学的不深,结果今天做CVTE校招在线测评的时候,遇见了两道这样的题(一道打头第一题,一道押尾倒数第二道),好忧桑啊。。

那么亡羊补牢,总结下好了~

1. 异常处理块

 1 try{
 2      //可能产生异常的语句
 3 }catch(Exception1 e){
 4     //出现异常Excertion1时的处理语句
 5 }catch(Exception2 e){
 6     //出现异常Excertion2时的处理语句
 7 }finally{
 8     //无论如何均会执行的语句(一般用于释放一些资源等)
 9 }
10 //期间异常Exception1不能是Exception2的基类,Exception1可为Exception2的子类

异常处理块方式一

1 public void method() throws Exception1{
2     //在方法名后直接抛出异常Exception1
3 }

异常处理块方式二

方式一(捕获异常)try-catch可以嵌套使用构成嵌套try-catch块;

方式二(抛出异常)可以抛出多个异常,即throws后可以添加一个异常列表,异常名之间用逗号分隔。

PS:printStackTrace()方法用来跟踪异常事件发生时打印堆栈中的信息(Throwable对象)

2. finally子句

在任何情况下,finally块中的语句均会执行,无论try块中是否出现异常或者是否捕获了异常;

finally子句通常用于I/O编程,可在finally块中放置一条文件关闭语句。

PS:1)若try块中没有出现异常,finally块中语句被执行,然后跳出异常处理块执行下一条语句;

  2)若try块中有一个语句出现异常,并被catch块捕获,此时跳过try块中其他语句直接执行catch块和finally子句

  3)若try块中有一个语句出现异常,但是没有被任何catch块捕获,则会跳过try块中其他语句直接执行finally子句

  4)即使在到达finally块之前有return语句,finally块仍然会执行,但是finally子句执行前,已经完成了return后表达式返回值的运算(并保存起来),顺序如下:

  try语句(return之前的代码部分)---计算return需要返回的值---finally---执行try中的 return语句

(含有return的执行顺序总结,详细可参看http://blog.csdn.net/kavensu/article/details/8067850  “3Q啦博主,小女子在此谢过~”)

 

时间: 2024-10-15 20:53:00

<JAVA>总结实录01 : 异常处理 try-catch-finally的相关文章

复习java基础第二天(异常处理)

一.常见的异常类型: public class TestException { public static void main(String[] args) { int i = 10; //数学异常: java.lang.ArithmeticException int j = i / 0; System.out.println(j); int [] scores = new int[]{1, 2, 4, 5}; //数组下标越界异常: java.lang.ArrayIndexOutOfBound

Java 编程中关于异常处理的 10 个最佳实践

异常处理是书写 强健 Java应用的一个重要部分.它是关乎每个应用的一个非功能性需求,是为了优雅的处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java提供了几个异常处理特性,以try,catch和finally 关键字的形式内建于语言自身之中.Java编程语言也允许你创建新的异常,并通过使用  throw 和 throws关键字抛出它们.事实上,异常处理不仅仅是知道语法.书写一个强健的代码更多的是一门艺术而不仅仅是一门科学,这里我们将讨论一些关于异常处理的Java最佳实践.这些 J

java不求有功,但求无过—异常处理

在程序开发中,错误往往有两种.一种是编译时出现的错误,该种错误比较容易发现.另一种是运行时出现的错误,该种错误是开发人员比较头疼的.异常就是一个运行时的错误,例如,除数为0 ,数组越界等. 异常处理,就是我们定义一个代码段(可能出错的代码段)来捕获和处理异常. 这样当异常情况发生时,一个代表该异常的对象会被创建,并在产生异常的方法中被引发.该方法可以选择自己处理异常,也可以抛出该异常,但无论是哪种,最终异常都会被处理. 例如以下的代码: import java.io.*; public clas

JAVA之IO技术异常处理机制

package ioTest.io1; import java.io.FileWriter; /* * IO异常的处理: * 读或写实际上都是调用系统的资源区做操作.只要和系统资源相关的都有可能出现异常. */ import java.io.IOException; public class FileWriterDemo1 { public static void main(String[] args) { FileWriter fWriter=null;//在外层创建对象的引用,在try代码块

java基础学习总结——异常处理

一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要. 1 package cn.javastudy.summary; 2 3 public class TestEx{ 4 5 public static void main(String args[]){ 6 int arr[]={1,2,3}; 7 System.out.println(arr[2]); 8 /** 9 * 这里使用try……catch来捕获除以0产生的异

Java编程中关于异常处理的10个要点

Java编程中关于异常处理的10个要点 如果是可恢复错误,使用检查型异常;如果是编程错误,使用非检查型异常.许多Java编程人员都很苦恼,到底是该选择检查型异常还是非检查型异常.检查型异常是一种从语言到强制你编写代码的一种方式,可以保证你对错误条件提供异常处理代码,但同时也会引入大量杂乱的代码导致其不可读.如果你有恢复策略的话,这样做看起来似乎也可以. 在finally程序块中关闭或者释放资源Java程序员对此都有所了解,在处理网络和IO类的时候,相当于一个标准.在finally块中关闭资源, 

异常处理 try...catch...finally 执行顺序, 以及对返回值得影响

异常处理 try...catch...finally 执行顺序, 以及对返回值得影响 1.不管有没有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的,所以函数返回值是根据返回类型在finally执行前后确定的:4.finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值. (一)   一般情况下,程序执行到try里面的内容一定会

Java 集合系列 01 总体框架

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工具类(Itera

java io系列01之 &quot;目录&quot;

javaIO系列转载出处:http://www.cnblogs.com/skywang12345/p/io_01.html 该分类所有博文,均转载同一作者,后边不再累赘标名. java io 系列目录如下: 01. java io系列01之  "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream) 03. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括Ou