视频课程链接:
369.尚硅谷_异常处理-异常概述_哔哩哔哩_bilibili
------------------------------------------------------------
格式
- try{
- // 可能会出现异常的代码
- }catch(异常类型1 变量名1){
- // 处理异常的方式1
- }catch(异常类型2 变量名2){
- // 处理异常的方式2
- }catch(异常类型3 变量名3){
- // 处理异常的方式3
- }
- ...
- finally{
- // 一定会执行的代码
- }
说明:
代码演示
- package Exception;
-
- /**
- * @author 胡磊涛
- * @date 2022/8/12 16:13
- * description 抓抛模型
- */
- public class ExceptionTest1 {
- public static void main(String[] args) {
- String str = "123";
- str = "abc";
- try {
- int num = Integer.parseInt(str);
-
- System.out.println("------1");
- }catch (NumberFormatException e){
- // 处理异常的方法
- // System.out.println("出现数值转换异常");
- // e.printStackTrace();
- e.getMessage();
- System.out.println("------2");
- }catch (NullPointerException e){
- System.out.println("出现了空指针异常");
- }finally {
- System.out.println("我真是太帅了");
- }
- }
- }
- package Exception;
-
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
-
- /**
- * @author 胡磊涛
- * @date 2022/8/12 21:49
- * description throws + 异常类型 方式
- */
- public class ExceptionTest2 {
- public static void main(String[] args) {
- // 最终在主函数里使用try-catch将异常处理掉
- try{
- method1();
- }catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void method1() throws FileNotFoundException , IOException {
- 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();
- }
- }
注意:在开发中,子类重写的父类方法抛出的异常不能大于父类方法抛出的异常
在开发中,怎么选择使用try-catch-finally还是thorws?
代码演示
- package Exception;
-
- /**
- * @author 胡磊涛
- * @date 2022/8/12 23:15
- * description
- */
- public class ExceptionTest3 {
- public static void main(String[] args) {
- Regist r = new Regist(100);
- System.out.println(r);
- }
- }
- class Regist{
- private int id;
-
- @Override
- public String toString() {
- return "Regist{" +
- "id=" + id +
- '}';
- }
-
- public Regist(int id){
- if(id > 0){
- this.id = id;
- }else{
- // System.out.println("您输入的数据格式有误");
- // 手动的抛出一个异常对象
- throw new RuntimeException("您输入的数据格式有误");
- }
-
- }
- }
代码演示
- package Exception;
-
- /**
- * @author 胡磊涛
- * @date 2022/8/12 23:34
- * description
- */
- public class MyException extends RuntimeException {
- // 序列版本号,用于标识这个异常类
- static final long serialVersionID = -641616161616L;
- public MyException(){
-
- }
- public MyException(String msg){
- super(msg);
- }
- }