这篇来讲一下异常方面的知识
在我们写代码的过程中
一般把异常分为两大类
第一类是代码本身的错误
这类异常如果我们在使用IDE写代码时,一般IDE就会给你曝出代码的哪些地方有错误
如果我们使用的是Eclipse,则在错误的代码下面会用红色的波浪线标识出来
而且我们用鼠标指到上面则会弹出来解决办法
第二类则是程序运行中遇到的错误
比如我们在程序代码逻辑上的错误、空指针错误…

一、throws的使用

throws只是声明异常,异常并没有处理
throws只是对该类声明会抛出一个异常,但没有对异常进行捕获,让别的调用它的方法进行处理,或者继续抛出,抛给上一层函数或类的成员函数
这是一种不负责任的异常处理方式
代码演示:

package com.baidu.demo.test8;

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

public class Demo1 {

	//这里我们使用throws把下面的异常抛出,这样我们就能编译并运行该程序
	public static void main(String[] args) throws FileNotFoundException {
		
		File f = new File("d:/LOL.exe");

		// 试图打开文件LOL.exe,因为我们没有LOL.exe文件,所以会抛出FileNotFoundException异常,如果不处理该异常,就会有编译错误
		new FileInputStream(f);

	}

}

运行结果:

java Attributes用法 at java.util.scanner.throwfor_异常处理

二、try…catch…的使用

try…catch…是对可能出现异常的代码捕获异常并对其进行处理
代码演示:

package com.baidu.demo.test8;

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

public class Demo2 {

	public static void main(String[] args) {
		
		//还是刚刚的一个IO流异常
		File f = null;
		
		//这里我们使用try...catch...来处理这个异常 try里面的是可能会出现异常的代码
		try {
			
			f = new File("d:/LOL.exe");
			new FileInputStream(f);
			
			//catch里面的代码是捕获了这个异常后做出的反应
		} catch (FileNotFoundException e) {
			//这里我们如果出现了这个异常就像控制台打印一句话
			System.out.println("文件可能不存在");
			//并打印出异常
			e.printStackTrace();
		}

	}

}

运行结果:

java Attributes用法 at java.util.scanner.throwfor_Java基础_02

三、try…catch…finally…的使用

finally就是不管异常处理还是不处理都会运行finally里面的代码 它是在try…catch…的最后执行的
finally通常用来关闭流
IO流相关知识我会在后面的课程讲到
代码演示:

package com.baidu.demo.test8;

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

public class Demo3 {

	public static void main(String[] args) {
		
		//还是刚刚的一个IO流异常
		File f = null;
		
		//这里我们使用try...catch...来处理这个异常 try里面的是可能会出现异常的代码
		try {
			
			f = new File("d:/LOL.exe");
			new FileInputStream(f);
			
			//catch里面的代码是捕获了这个异常后做出的反应
		} catch (FileNotFoundException e) {
			//这里我们如果出现了这个异常就像控制台打印一句话
			System.out.println("文件可能不存在");
		}finally {
			System.out.println("这是最后处理的代码");
		}

	}

}

运行结果:

java Attributes用法 at java.util.scanner.throwfor_java Attributes用法_03


好啦,其实关于异常的处理大概常用的也就这么多
这个也并不是太难
好啦,就这样吧
顾得白