Exception1——java自学笔记

package com.atguigu.java;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.junit.Test;

/*
 * 一、异常的处理:抓抛模型
 * 
 * 过程一:抛:程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象。
 * 			  并将此对象抛出。
 * 			  一旦抛出对象后,其后的代码就不再执行。
 * 
 * 
 * 过程二:抓:可以理解为异常的处理方式:① try-catch-finally  ② throws
 * 
 * 
 * 二、try-catch-finally的使用
 * 
 * try{
 * 		//可能出现异常的代码
 * }catch(异常类型1 变量名1){
 * 		//处理异常的方式1
 * }catch(异常类型2 变量名2){
 * 		//处理异常的方式2
 * }catch(异常类型3 变量名3){
 * 		//处理异常的方式3
 * }
 * ···
 * finally{
 * 		//一定会执行的代码
 * }
 * 
 * 说明:
 * 1.finally是可选的。
 * 2.使用try将可能出现异常代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常类的对象,根据此对象
 *   的类型,去catch中进行匹配。
 * 3.一旦try中的异常对象匹配到某一个catch时,就进入catch中进行有异常的处理。一旦处理完成,就跳出当前的
 *   try-catch结构(在没有写finally的情况下)
 * 4.catch中的异常类型如果没有子父类关系,则谁声明在上,谁声明在下无所谓。
 *   catch中的异常类型如果满足子父类关系,则要求子类一定要声明在父类的上面。否则,报错
 * 5.常用的异常对象处理的方式:① String getMessage()	② printStackTrace
 * 6.在try结构中声明的变量,在出了try结构以后,就不能再被调用
 * 7.try-catch-finally结构可以嵌套
 * 
 * 体会:使用try-catch-finally处理编译时异常,使得程序在编译时不再报错,但是运行时仍有可能报错。
 * 		相当于我们使用try-catch-finally将一个编译时可能出现的异常,延迟到运行时出现。
 * 
 */
public class ExceptionTest1 {

	@Test
	public void test7() {
		try {
			File file = new File("hello.txt");
			FileInputStream fis = new FileInputStream(file);

			int data = fis.read();
			while (data != -1) {
				System.out.println((char) data);
				data = fis.read();
			}

			fis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@Test
	public void test1() {

		String str = "123";
		str = "abc";
		int num = 0;
		try {
			num = Integer.parseInt(str);
			System.out.println("hello---1");
		} catch (NullPointerException e) {
			System.out.println("出现空指针异常了,不要着急");
		} catch (NumberFormatException e) {
//			System.out.println("出现数值转换异常了,不要着急");
			// String getMessage():
//			System.out.println(e.getMessage());
			// printStackTrace
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println("出现异常了,不要着急");
		}
		System.out.println(num);

	}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值