异常


异常
  • throws IOException

1. 异常体系

1. 异常体系:

  1. Throwable:
    1. Error: 严重问题,不需要处理
    2. Exception:
      1. RuntimeException: (称为运行时异常,其他均为编译时异常) 在编译期是不检查的,出现问题后,需要我们回来改代码
      2. 非RuntimeException: 编译期就必须处理的,否则程序不能通过编译,更不能正常运行

2. JVM的默认处理方案

  • 如果程序出现了问题,我们没有做任何处理,最终JVM会做默认的处理:
    1. 把异常的名称,异常原因和异常出现的位置等信息输出在了控制台。
    2. 程序终止执行。

3. 异常处理

  • 在JVM的默认处理方案上,不会终止程序,而会继续执行

1. 格式:

try{
	可能出现异常的代码;
} catch {
	异常的处理代码;
}

2. 例如:

try{
	int[] arr = {1, 2, 3};
    System.out.println(arr[3]);
} catch (ArrayIndexOutOfBoundsException e) {
    e.printStackTrace(); // 返回最全面的异常信息 (最常用)
}

4.两种异常

  1. 编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译
  2. 运行时异常:无需显示处理,也可以和编译时异常一样处理

5. 处理异常2 (throws 异常类名):

  • throw抛出异常没有处理,不往下执行,try catch往下执行

异常处理之throws:

  1. 编译时异常必须要进行处理,两种处理方案:try…catch… 或者 throws。(如果throws来处理,将来谁调用谁处理)
  2. 运行时异常可以不处理,出现问题后,需要我们回来改代码

6. 自定义异常

1. 格式:

public class 异常类名 extends Exception {
	无参构造
	带参构造
}

2. 范例

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

7. throw 和 throws 的区别

1. throws:

  1. 用在方法名后面,跟的是异常类名
  2. 表示抛出异常,由该方法的调用者来处理
  3. 表示可以出现异常(不一定出现异常)

2. throw:

  1. 用在方法体内,跟的是异常对象名
  2. 表示抛出异常,由方法体内的语句处理
  3. 一定出现了某种异常

文章作者: han yue
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 han yue !
评论
  目录