当前位置: 首页 > 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就可以了
注意要重写空参构造和带参构造,不仅是这里注意,所有的类继承父类都不能忘写构造方法

相关文章:

JAVA基础学习笔记_异常

文章目录 异常异常的作用处理异常的方式异常中的常见方法捕获异常自定义异常 异常 应该知道出了异常怎么处理 java.lang.Throwable Error(错误,硬件出错或内存不足,不是程序员能解决的) Exception(异常) RuntimeException(运行时异常),代码出错导致程序出现的问题 其他异…...

Modern Effective C++条款三十四:考虑lambda而非std::bind

C11中的std::bind是C98的std::bind1st和std::bind2nd的后续&#xff0c;C11 lambda几乎总是比std::bind更好的选择。 从C14开始&#xff0c;lambda的作用不仅强大&#xff0c;而且是完全值得使用的。与item32中一样&#xff0c;我们将从std::bind返回的函数对象称为bind对象(bi…...

lyapunov指数的绘制

有如下方程&#xff1a; %% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)绘制其对应的lyapunov指数。 MATLAB实现方式&#xff1a; clc; clearvars; close all;%% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)%% 代码 N 1000; a (0:0.001:1.4); b 0.3; na length(a…...

Ansible 运维工具

安装 apt install ansible /etc/ansible/hosts , 指定密码或密钥访问分组机器 [k8s_masters] master0.c0.k8s.sb[k8s_nodes] node0.c0.k8s.sb node1.c0.k8s.sb[k8s:children] k8s_masters k8s_nodes[k8s_masters:vars] ansible_ssh_usersbadmin ansible_ssh_pass"***&q…...

【AI系统】MobileNet 系列

MobileNet 系列 在本文会介绍 MobileNet 系列&#xff0c;重点在于其模型结构的轻量化设计&#xff0c;主要介绍详细的轻量化设计原则&#xff0c;基于这原则&#xff0c;MobileNetV1 是如何设计成一个小型&#xff0c;低延迟&#xff0c;低功耗的参数化模型&#xff0c;可以满…...

MATLAB在生态环境数据处理与分析中的应用

专题一 MATLAB编程入门 要点&#xff1a;介绍、案例演示、软件界面、语法基础、基本运算等 专题二&#xff08;试听&#xff09; MATLAB编程入门 要点&#xff1a;脚本编写、函数调用、循环控制、代码调试、文件读写等 专题三 MATLAB可视化与绘图 要点&#xff1a;交互式…...

tensorrt

engine /*tensorrt创建builder1. 创建builder2. 创建网络定义&#xff1a;builder-->network3. 配置参数&#xff1a;builder-->config4. 生成engine&#xff1a;builder-->engine()5. 序列化保存:engine-->serialize6. 释放资源&#xff1a;delete */ #include&l…...

利用Grounding DINO进行自动标注——目标检测任务——YOLO格式

关于Grounding DINO的环境搭建可以参考我的以前的博客&#xff0c;链接如下所示 如何在Linux上离线部署Grounding DINO-CSDN博客 这个博客主要来介绍如何利用Grounding DINO这个项目去进行目标检测的自动化标注。并且给出了相关的代码已经实验验证。 1.数据集准备 2. 开始实…...

网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)

网际协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;&#xff0c;又称互联网协议。是OSI中的网络层通信协议&#xff0c;用于跨网络边界分组交换。它的路由功能实现了互联互通&#xff0c;并从本质上建立了互联网。网际协议IP是 TCP/IP 体系中两个最主要的协议之…...

uniapp 添加loading

在uniapp中添加loading可以使用uni的API uni.showLoading 方法。以下是一个简单的示例代码 // 显示loading uni.showLoading({title: 加载中 });// 假设这里是异步操作&#xff0c;比如网络请求 setTimeout(function () {// 隐藏loadinguni.hideLoading(); }, 2000);...

cocotb pytest

打印python中的print &#xff0c; 应该使用 pytest -s pytest --junitxmltest_report.xml --htmlreport.html...

docker run 设置启动命令

在使用 docker run 命令时&#xff0c;你可以通过指定启动命令来覆盖 Docker 镜像中的默认入口点或命令。具体来说&#xff0c;你可以通过以下两种方式来设置启动命令&#xff1a; 覆盖 CMD&#xff1a; 你可以通过在 docker run 命令的最后部分提供命令来覆盖镜像的默认 CMD 指…...

docker入门 自记录

1.先自己下载离线bao .tar 或者 自己pull docker pull xxx 如果遇到网络问题就换源 2.之后run一个docker 后面是映射本地路径 sudo docker run -it --name ultralytics_241124 --gpus all --shm-size 8G -v /home/oppenheim/detect/train241204/docker:/home/docker ultralyti…...

css实现圆周运动效果

在CSS中可以通过 keyframes 动画 和 transform 属性实现元素的圆周运动。以下是一个示例代码&#xff1a; 示例代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content…...

【NoSQL数据库】MongoDB数据库——集合和文档的基本操作(创建、删除、更新、查询)

目录 一、MongoDB数据库原理 二、MongoDB数据库和集合基本操作&#xff08;增删改查&#xff09; 三、MongoDB数据库的文档基本操作&#xff08;增删改&#xff09; 四、学习笔记 往期文章&#xff1a;【NoSQL数据库】MongoDB数据库的安装与卸载-CSDN博客 一、MongoDB数据…...

Dart 学习笔记(一)

一、数据类型 数值类型 int&#xff1a;表示整数类型&#xff0c;例如&#xff1a;int num 10;。在 Dart 中&#xff0c;int 类型是有范围限制的&#xff0c;具体取决于平台&#xff0c;但通常在 -2^63 到 2^63 - 1 之间。double&#xff1a;表示双精度浮点数类型&#xff0c…...

安防视频监控平台Liveweb视频汇聚管理系统管理方案

智慧安防监控Liveweb视频管理平台能在复杂的网络环境中&#xff0c;将前端设备统一集中接入与汇聚管理。国标GB28181协议视频监控/视频汇聚Liveweb平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、…...

十八(GIT)、GIT基本命令、axios别名方法、黑马就业数据平台(axios基地址、轻提示函数、注册及登录功能)

1. GIT 1.1 Git配置用户信息 1. Git配置用户信息 git config --global user.name "用户名" git config --global user.email 邮箱地址 2. 查看配置 git config --list (信息太多使用 输入 q 退出) 1.2 本地初始化Git仓库 1. 通常有两种获取Git仓库的方式: 将 尚未进…...

Linux查看系统基本信息

执行命令 chmod x system_info.sh && ./system_info.sh文件名&#xff1a;system_info.sh #!/bin/bash# 获取系统版本 SYSTEM_VERSION$(cat /etc/os-release | grep ^PRETTY_NAME | cut -d -f 2 | xargs)# 获取CPU数量 CPU_COUNT$(grep -c ^processor /proc/cpuinfo…...

Word处理表格的一些宏

目录 1、表格首行居中2、表格内容靠左上下居中&#xff08;排除首行&#xff09; 1、表格首行居中 说明&#xff1a; 遇到错误将进行捕获&#xff0c;然后继续处理下一个表格 宏&#xff1a; Sub 表格首行居中()Dim tbl As tableOn Error Resume Next 错误时继续执行下一个…...

Perplexity查不出薛定谔方程推导?紧急修复指南:4步重置知识图谱权重,实测响应准确率从62%→98.7%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity物理知识查询 Perplexity 是一款基于大语言模型的实时网络增强型问答工具&#xff0c;其在物理知识查询场景中展现出独特优势&#xff1a;它能动态检索权威物理数据库&#xff08;如NIST、ar…...

LM317电源模块的“隐藏参数”与实战避坑:为什么你的空载电压总是不稳?

LM317电源模块的“隐藏参数”与实战避坑&#xff1a;为什么你的空载电压总是不稳&#xff1f; 在电子设计领域&#xff0c;LM317作为经典的可调线性稳压器&#xff0c;几乎出现在每个工程师的备件库中。但当你按照标准电路搭好原型&#xff0c;却发现空载时输出电压飘忽不定——…...

3步掌握TransNet V2:从零开始实现智能视频镜头检测

3步掌握TransNet V2&#xff1a;从零开始实现智能视频镜头检测 【免费下载链接】TransNetV2 TransNet V2: Shot Boundary Detection Neural Network 项目地址: https://gitcode.com/gh_mirrors/tr/TransNetV2 想要快速分析视频内容结构&#xff0c;自动识别镜头切换点吗…...

Perplexity环境新闻检索失效真相(2024最新API响应延迟根因分析)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity环境新闻搜索 Perplexity 是一款基于大语言模型的实时信息检索工具&#xff0c;其核心优势在于融合权威信源与上下文感知能力&#xff0c;特别适用于需要高时效性与高可信度的新闻类查询场景。在该环…...

手把手教你用UE5 C++为角色添加动态攀爬:支持移动平台与高度自适应

手把手实现UE5动态攀爬系统&#xff1a;移动平台与高度自适应全解析 在当代3A级动作游戏中&#xff0c;角色与环境的动态交互已成为沉浸感的核心要素。想象一个场景&#xff1a;玩家在摇晃的空中浮岛上追逐目标&#xff0c;需要连续攀爬移动中的平台&#xff1b;或是潜入敌方基…...

OpenSpec 介绍与使用:让 AI 编程从“聊天驱动”变成“规格驱动”

一、为什么需要 OpenSpec&#xff1f; AI 编程工具越来越强&#xff0c;但很多人在使用 AI 写代码时会遇到一个问题&#xff1a;需求都在聊天记录里&#xff0c;代码越写越快&#xff0c;但上下文越来越乱&#xff0c;最终很难判断 AI 实现的到底是不是最初想要的东西。 OpenSp…...

Android Studio中文界面完整汉化指南:三步打造母语开发环境

Android Studio中文界面完整汉化指南&#xff1a;三步打造母语开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为And…...

期货合约乘数与最小变动价位:从 Quote 读规格做下单预算

前言 写天勤量化下单逻辑时&#xff0c;若手数、保证金和盈亏对不上账&#xff0c;我一般会先查合约规格有没有读错。乘数、最小变动价位&#xff08;一跳&#xff09;、涨跌停价都在 Quote 里&#xff0c;用统一字段做预算&#xff0c;比手算或硬编码合约表更不容易在换月后踩…...

稳定币深度解析:从技术内核到生态未来

稳定币深度解析&#xff1a;从技术内核到生态未来 引言 在加密货币世界剧烈波动的浪潮中&#xff0c;稳定币如同一座坚不可摧的桥梁&#xff0c;连接着传统金融与去中心化未来。它不仅是DeFi乐高积木中最关键的基座&#xff0c;更在跨境支付、元宇宙经济等前沿领域扮演着核心…...

HNU 计算机系统 bomblab:从GDB断点到链表重构的逆向实战

1. 逆向工程实战&#xff1a;从零开始拆解二进制炸弹 第一次接触bomblab时&#xff0c;我盯着终端里那个名为"bomb"的可执行文件发呆了十分钟。这个看似普通的Linux程序就像个黑盒子&#xff0c;里面藏着六个需要密码才能解除的"炸弹"。作为计算机系统课程…...