JAVA学习14——异常

目录

异常:

1.异常基本介绍:

2.异常体系图:

3.五大运行时异常:

(1)NullPointerException空指针异常:

(2)AirthmetiException数字运算异常:

(3)ArrayIndexOutOfBoundsException数组下标越界异常:

(4)ClassCastException类型转换异常:

(5)NumberFormatException数字格式不正确异常:

4.异常处理机制:

(1)try-catch-finally(快捷键ctrl+alt+t)

(2)throws:

(3)自定义异常:

1.自定义的步骤:

2.throw和throws的区别:


异常:

1.异常基本介绍:

(1)概念:

Java语言中,将程序执行中发生的不正常情况称为异常。

(2)异常分类:

执行过程中所发生的异常事件可以分为两大类:

2.异常体系图:

3.五大运行时异常:

(1)NullPointerException空指针异常:

当应用程序试图在需要对象的地方使用null时,抛出该异常。

(2)AirthmetiException数字运算异常:

当出现异常的运算条件时,抛出该异常。

(3)ArrayIndexOutOfBoundsException数组下标越界异常:

用非法索引访问数组时抛出的异常,如果索引为负或大于等于数组大小,则该索引为非法索引。

(4)ClassCastException类型转换异常:

当试图将对象强制转换为不是实例的子类时,抛出该异常。

(5)NumberFormatException数字格式不正确异常:

当程序试图将字符串转换为一种数值类型,当该字符串不能转换为适合格式时,抛出该异常。

4.异常处理机制:

(1)try-catch-finally(快捷键ctrl+alt+t)

程序员在代码中捕获发生的异常,自行处理。

  • 如果发生异常了,则异常后面的代码不会执行,直接进入catch块。
  • 如果异常没有发生,则顺序执行try的代码块,不会进入catch。
  • 不管异常是否发生,finally代码块内的代码都执行,finally代码块中的语句在try-catch代码块中的语句执行完之前执行完。
  • 可以有多个catch语句,捕获不同的异常,要求父类异常在后,子类异常在前。
  • try-catch,相当于没有捕获异常,执行finally后程序会直接退出。应用场景:执行一段代码,不管是否发生异常,都必须执行某个业务逻辑。

(2)throws:

将发生的异常抛出,交给调用者来处理,最顶级的处理者就是jvm。

  • 对于编译异常,程序中必须处理,比如try-cach或者throws
  • 对于运行时异常,程序中如果没有处理,默认就是throws的方式处理。
  • 子类重写父类的方法时,对于抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的一致,要么为父类抛出异常的子类型(异常体系图)。

(3)自定义异常:

1.自定义的步骤:
  1. 定义类:自定义异常类名,继承Exception或RuntimeException
  2. 如果继承Exception,属于编译异常。
  3. 如果继承RuntimeException,属于运行异常。
2.throw和throws的区别:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/670582.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++学习笔记——对仿函数的理解

文章目录 思维导图仿函数出现的逻辑仿函数使用上的巧妙 仿函数的本质仿函数的优势仿函数语法的巧妙 思维导图 仿函数出现的逻辑 我们在学习stack时会遇到一些新的问题,这些问题需要我们使用非类型模板参数去解决,即我们需要在设计类时需要有一个途径去快…

【c1】数据类型,运算符/循环,数组/指针,结构体,main参数,static/extern,typedef

文章目录 1.数据类型:编译器(compiler)与解释器(interpreter),中文里的汉字和标点符号是两个字节,不能算一个字符(单引号)2.运算符/循环:sizeof/size_t3.数组…

Pycharm debug 运行报错 (RuntimeError: cannot release un-acquired lock)

问题描述: 最近再跑一个 flask应用,Pycharm 运行没问题,debug断点启动时报错 如下: 解决方案: 在环境变量中增加 GEVENT_SUPPORTTrue 启动成功!

广义近似消息传递(GAMP-MMSE-SBL)

1、为了解决什么问题 [1]Rangan, Sundeep. "Generalized approximate message passing for estimation with random linear mixing." 2011 IEEE International Symposium on Information Theory Proceedings. IEEE, 2011. [2]Andersen, Michael Riis. "Sparse…

【3D基础】坐标转换——地理坐标投影到平面

汤国安GIS原理第二章重点 1.常见投影方式 https://download.csdn.net/blog/column/9283203/83387473 Web Mercator投影(Web Mercator Projection): 优点: 在 Web 地图中广泛使用,易于显示并与在线地图服务集成。在较…

RS2057XH功能和参数介绍及规格书

RS2057XH 是一款由润石科技(Runic Semiconductor)生产的模拟开关芯片,其主要功能和参数如下: 产品特点: 低电压操作:支持低至1.8V的工作电压,适用于低功耗应用。 高带宽:具有300MHz的…

linux学习:线程池

目录 原理 初始线程池 运行中的线程池 相关结构体 api 线程池初始化 投送任务 增加活跃线程 删除活跃线程 销毁线程池 例子 thread_pool.h thread_pool.c test.c 测试程序 原理 一个进程中的线程就好比是一家公司里的员工,员工的数目应该根据公司的…

展厅设计中的时光隧道装置是什么?有何独特应用优势?

在当今多媒体互动技术蓬勃发展的时代,各类创新的内容呈现手段层出不穷。其中,时光隧道互动装置以其独特的方式,极大地丰富了内容的表达并提升了用户体验,它能够将参观者引领至一个多维度的感官世界,让其身临其境地感受…

超详细——集成学习——Adaboost——笔记

资料参考 1.【集成学习】boosting与bagging_哔哩哔哩_bilibili 集成学习——boosting与bagging 强学习器:效果好,模型复杂 弱学习器:效果不是很好,模型简单 优点 集成学习通过将多个学习器进行结合,常可获得比单一…

前端基础学习html(1)

1.标题标签.h1,h2...h6 2.段落标签p 换行标签br 3.加粗strong(b) /倾斜em(i) /删除 del(s) /下划线ins(u) 4.盒子:div //一行一个 span//一行多个 5.img :src alt title width height border 图片src引用:相对路径 上级/同级/中级 绝对路径&#xff…

Linux用户日志审计系统

标题日期版本说明作者 用户日志审计系统 2024.05.06v.0.0.1权限lgb 测试环境:CentOS Stream 9 测试过程: 测试开始前,首先我们先建立一个用户。 将文件备份。 我们通过vim编辑器,打开 /etc/profile 文件进行编辑。 将提前编辑好…

win中python中OpenCV使用cv2.imshow()报错的解决办法

1. 问题 cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK 2.x or Cocoa support. If you are on Ubuntu o…