当前位置: 首页 > news >正文

JAVA基础学习笔记_异常

文章目录

  • 异常
    • 异常的作用
    • 处理异常的方式
    • 异常中的常见方法
    • 捕获异常
    • 自定义异常

异常

应该知道出了异常怎么处理

  • java.lang.Throwable
    • Error(错误,硬件出错或内存不足,不是程序员能解决的)
    • Exception(异常)
      • RuntimeException(运行时异常),代码出错导致程序出现的问题
      • 其他异常(编译时异常),提醒程序员检查本地信息
        java–(编译)–>字节码文件(class)—(运行)–>运行结果

异常的作用

  • 异常是查询bug的关键信息
  • 异常可以作为方法内部的一种特殊返回值,以便通知调用着底层的执行情况

处理异常的方式

  • 默认处理,将异常异常信息打印在控制台
  • 捕获异常(自己处理),好处就是可以让程序继续执行不停止为了不让程序停止
  • 抛出异常,在方法中出现异常,就没有继续运行的意义了,抛出处理告诉调用者出错了
public static void main(String[] args) {int[] arr = {1,2,3,4,5};try {System.out.println(arr[10]);}catch (ArrayIndexOutOfBoundsException e) {System.out.println(e);}
}

异常中的常见方法

  • e.getMessage()
  • e.toString()
  • e.printStackTrace()
public static void main(String[] args) {int[] arr = {1,2,3,4,5};try {System.out.println(arr[10]);}catch (ArrayIndexOutOfBoundsException e) {String message = e.getMessage();//Index 10 out of bounds for length 5System.out.println(message);String string = e.toString();//java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 5System.out.println(string);e.printStackTrace();//输出信息最为详尽//java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 5at com.itheima.exception.exception.main(exception.java:7)}
}

捕获异常

你比如说,这个信息是用户来输入的,如果不抛出异常捕获异常,不能用户输入错一次,我们整个java程序就停了吧,那还搞什么网页

public static void main(String[] args) {//创建键盘录入对象Scanner sc = new Scanner(System.in);//创建女朋友对象GirlFriend girlFriend = new GirlFriend();while (true) {try {//接受女友姓名String name = sc.nextLine();//设置女友姓名girlFriend.setName(name);//接受女友年龄int age = sc.nextInt();//设置女友年龄girlFriend.setAge(age);break;} catch (Exception e) {e.printStackTrace();}}System.out.println(girlFriend);
}
public class GirlFriend {String name;int age;public GirlFriend() {}public GirlFriend(String name, int age) {this.name = name;this.age = age;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {if(name.length()>10||name.length()<3){throw new RuntimeException();}this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {if(age<18){throw new RuntimeException();}this.age = age;}public String toString() {return "GirlFriend{name = " + name + ", age = " + age + "}";}
}

自定义异常

自定义的异常类继承RuntimeException就可以了
注意要重写空参构造和带参构造,不仅是这里注意,所有的类继承父类都不能忘写构造方法

http://www.lryc.cn/news/498305.html

相关文章:

  • Modern Effective C++条款三十四:考虑lambda而非std::bind
  • lyapunov指数的绘制
  • Ansible 运维工具
  • 【AI系统】MobileNet 系列
  • MATLAB在生态环境数据处理与分析中的应用
  • tensorrt
  • 利用Grounding DINO进行自动标注——目标检测任务——YOLO格式
  • 网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)
  • uniapp 添加loading
  • cocotb pytest
  • docker run 设置启动命令
  • docker入门 自记录
  • css实现圆周运动效果
  • 【NoSQL数据库】MongoDB数据库——集合和文档的基本操作(创建、删除、更新、查询)
  • Dart 学习笔记(一)
  • 安防视频监控平台Liveweb视频汇聚管理系统管理方案
  • 十八(GIT)、GIT基本命令、axios别名方法、黑马就业数据平台(axios基地址、轻提示函数、注册及登录功能)
  • Linux查看系统基本信息
  • Word处理表格的一些宏
  • 将本地项目文件推送到Git仓库中
  • 2024-12-05OpenCV高级-滤波与增强
  • vue3中 axios 发送请求 刷新token 封装axios
  • aardio - 汉字笔顺处理 - json转sqlite转png
  • 数据结构学习笔记 双向链表
  • 深度学习作业十 BPTT
  • html+css+JavaScript实现轮播图
  • Python+onlyoffice 实现在线word编辑
  • PostgreSQLt二进制安装-contos7
  • Neo4j启动时指定JDK版本
  • kanzi3.6.10 窗口插件-美化绑定内容