Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • JavaSE

    • Java简介
    • 基础语法
    • 数据类型
    • 变量
    • 运算符
    • 输入输出
    • 流程控制
    • 循环语句
    • idea中的辅助键
    • 数组
    • 方法
    • 面向对象基础
    • 字符串
    • ArrayList集合
    • 继承
    • 修饰符
    • 多态
    • 抽象
    • 接口
    • 类名作为形参和返回值
    • 内部类
    • Api
    • 异常
      • throws声明异常
      • throw抛出异常
      • try catch
        • 多个catch
        • 捕抓所有异常 Exception
        • error中的内部方法
      • 自定义异常
    • 集合
    • 泛型
    • Set集合和比较器
    • 树
    • 哈希
    • 可变参数
    • 创建不可变的集合
    • Stream流
    • 方法引用
    • File
    • 多线程
    • 多线程高级
    • 网络编程
    • 类加载器
    • 反射
    • XML
    • 枚举
    • 注解
    • 单元测试
    • 日志
    • HTTP协议
    • Servlet
    • 请求对象
    • 响应对象
    • Cookie
    • Session
    • JSP
    • Listener
    • JDBC
  • JavaEE

  • Linux

  • MySQL

  • NoSQL

  • Python

  • Python模块

  • 机器学习

  • 设计模式

  • 传智健康

  • 畅购商城

  • 博客项目

  • JVM

  • JUC

  • Golang

  • Kubernetes

  • 硅谷课堂

  • C

  • 源码

  • 神领物流

  • RocketMQ

  • 短链平台

  • 后端
  • JavaSE
Iekr
2021-07-06
目录

异常

# 异常

# throws 声明异常

在方法定义处 声明 要捕获的异常

使用 throws 关键字 加 异常名

public static void method() throws  NullPointerException{
        int[] arr =null;
        System.out.println(arr[2]);
    }
1
2
3
4

运行时异常可以省略,但编译时异常不能省略声明,否则不能正常执行

# throw 抛出异常

使用 thorw new 关键字 加 异常 可以在代码块中直接抛出一个异常

System.out.println("接下来要new一个异常");
throw new NullPointerException();
1
2

# try catch

try {
    pringArr(arr);  // 可能会发生异常的代码块
    System.out.println("发生异常后异常语句try后面的代码不会继续执行");
} catch (NullPointerException a){
    System.out.println("捕获到异常");  // 如果捕获到异常执行的代码块
}
System.out.println("捕获到异常后并不会结束虚拟机");
1
2
3
4
5
6
7

# 多个 catch

try {
    System.out.println(Integer.parseInt("123"));
    System.out.println(2 / 0);
    //catch 可以有多个 ,用来捕获多个异常
} catch (NumberFormatException err) {
    System.out.println("格式化异常");
} catch (ArithmeticException err) {
    System.out.println("数字运算异常");
}
1
2
3
4
5
6
7
8
9

如果多个异常中存在子父类,那么父类异常应该写在最后,因为如果写在最前面会捕抓到所有的子类异常,后面的子类异常语句并没有任何效果.

# 捕抓所有异常 Exception

try {
    System.out.println(Integer.parseInt("123"));
    System.out.println(2 / 0);
} catch (Exception err) {
    System.out.println("捕抓所有异常");
    //不推荐使用,因为我们捕获不同异常可能会有不同的处理方式
} 
1
2
3
4
5
6
7

# error 中的内部方法

  • getMessage () 返回异常的信息
  • toString () 返回异常的类型 和信息
  • printStackTrace () 将异常信息以红色字体呈现在控制台中,与默认异常报错不同,这些方法并不会结束虚拟机
try {
    int[] arr ={1,2,3,4};
    System.out.println(arr[10]);
} catch (ArrayIndexOutOfBoundsException e) {
    String message = e.getMessage();  // 返回异常的信息
    System.out.println(message);

    String s = e.toString();  //返回异常的类型 和信息
    System.out.println(s);

    e.printStackTrace();   // 将异常信息以红色字体呈现在控制台中,与默认异常报错不同,这些方法并不会结束虚拟机
    System.out.println("123");
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 自定义异常

自定义异常 只需要给予一个 无参构造方法 和 带参构造方法 并且继承运行时异常或编译时异常即可

public class AgeOutofBoundsException extends RuntimeException {
        public AgeOutofBoundsException() {

        }

        public AgeOutofBoundsException(String message) {
            super(message);
        }
    }
1
2
3
4
5
6
7
8
9
编辑 (opens new window)
上次更新: 2023/12/06, 01:31:48
Api
集合

← Api 集合→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式