* 处理异常的第二种方式:捕捉 try{}catch(){}
*
* 语法:
* try{
* 可能出现异常的代码;
* }
* catch(异常类型1 变量){
* 处理异常的代码;
* }
* catch(异常类型2 变量){
* 处理异常的代码;
* }......
*
* 1.catch语句块可以写多个
*
* 2.但是从上到下catch,必须从小类型异常到大类型异常进行捕捉
*
* 3.try...catch..中最多执行1个catch语句块,执行结束之后try...catch就结束了
*
package com.lbj.javase24;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;/*** 处理异常的第二种方式:捕捉 try{}catch(){}* * 语法:* try{* 可能出现异常的代码;* }* catch(异常类型1 变量){* 处理异常的代码;* }* catch(异常类型2 变量){* 处理异常的代码;* }......* * 1.catch语句块可以写多个* * 2.但是从上到下catch,必须从小类型异常到大类型异常进行捕捉* * 3.try...catch..中最多执行1个catch语句块,执行结束之后try...catch就结束了* * * * @author 14811**/
public class ExceptionTest04 {public static void main(String[] args){try{//程序执行到此处发生了FileNotFoundException类型的//JVM会自动创建一个FileNotFoundException类型的对象,将该对象的内存地址赋值给catch语句块中的e变量FileInputStream fis=new FileInputStream("c:/ab.txt");//上面的代码出现了异常,try语句块的代码不再执行,直接进入catch语句块中执行,然后只执行一条catch语句然后跳出System.out.println("测试是否存在异常后还是输出下面的fis内容");fis.read();}catch(FileNotFoundException e){System.out.println("读取文件不存在");//这时候会输出这么一段话/** 读取文件不存在java.io.FileNotFoundException: c:\ab.txt (系统找不到指定的文件。)为什么会有这句话呢,按道理来说e保存的不应该是内存地址吗,输出e的时候应该是一串字符才对,为什么呢?原因是FileNotFoundException重写了e的toString方法,输出的提示内容是SUN公司规定的内容e的内存地址指向堆中的那个对象是"FileNotFoundException类型的"事件*/System.out.println(e.toString());//默认调用的是e.toString(),但是只写e的时候,也是一样的意思}catch(IOException e){}//注意,由于异常处理有先后要求,小的在前,大的在后,这里的顺序不能调换,IOException是大类型}}