小白学Java16:异常

异常

  • 异常的分类
  • 异常处理的机制
    • 捕获异常(try catch finally)
      • 关键字:finally
    • 声明异常(throws)
      • 小知识:try-with-resources
      • 关键字:Throws和throw
  • 自定义异常

小白学Java16:异常_第1张图片

异常的分类

所有异常的父类:Throwable

  • Error:错误(系统错误)
  • Exception:异常
    • IOException:IO异常
    • 检查异常:

异常处理的机制

捕获异常(try catch finally)

try {
	//可能有问题的代码块
} catch (Exception e) {
    //异常处理
	}finally{
     //有没有异常都会执行的代码块
 }

关键字:finally

finally 关键字用来创建在 try 代码块后面执行的代码块。
无论是否发生异常,finally 代码块中的代码总会被执行。
在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。
finally 代码块出现在 catch 代码块最后,常用来进行一些关流、释放资源操作

声明异常(throws)

表示声明此方法抛出异常的类型,跟在方法名后面,

void name() throws IOException{
    	
	}

小知识:try-with-resources

将打开资源的操作写在try后面的括号里,这样执行结束后,将会自动调用资源的close()方法

//使用try-cathc-finally语句捕获异常并关闭资源/又臭又长
		InputStream is = null ;
		try {
			is = new FileInputStream("src/a.txt");
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}finally {
			try {
				is.close();
			} catch (IOException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
//使用try-with-resources语句捕获异常并关闭资源/简单清爽

	try(InputStream is = new FileInputStream("src/a.txt")){
			
		} catch (Exception e) {
			
		}

关键字:Throws和throw

throws:抛出异常的类型,跟在方法名里
throw:表示向外抛出一个异常对象

自定义异常

1:继承Throwable
2:继承RuntimeException 定义运行时异常
3:继承Exception 定义检查异常

具体实现构造函数即可

class MyException extends Exception{
	public MyException() {
		super();
	}
	public MyException(String message) {
		super(message);
	}
}

你可能感兴趣的:(学习笔记)