异常

简介: 异常

异常概述

什么是异常

Java 在运行过程当中出现的错误

异常继承体系

Throwable

Throwable继承体系

异常处理方式

  1. 自己处理,然后继续运行
  2. 自己没有办法处理,交给 Jvm 来处理

JVM 有一个默认的异常处理机制将异常处理,并将该异常的名称,异常信息,异常出现的位置给打印在控制台上,同时停止运行


10/0;

违背了算法运算法则,抛出异常

抛出的异常是一个对象

New ArithmeticException(“/by zero”) 把这个异常对象返回

此时想把异常对象赋值给a

a是一个int类型不能接收,main方法解决不了

交给jvm来处理,jvm就将该异常在控制台打印程序终止。

自己处理异常

try…catch…finally

基本格式

try{ 
    可能出现理异常的代码 
}catch(异常类型){
}finally{
   处理完异常最后做的处理
}
Try:用来检测异常
Catch:用来捕获异常
Finally:释放资源

10/0;会创建一个异常对象

New ArithmeticException(“/by zero”)

赋值给a,接收不了,此时就把异常对象传给catch当中的参数a

能够接收,就会执行catch当中的内容,程序也没有终止

只有在try出问题的时候才会执行catch当中的内容,出问题时 catch 处理完毕之后,后续的代码继续执行

try…catch处理多个异常

在try当中可能会出现不同的异常类型,此时可以使用多个catch来进行处理




Exception e 不能写在最上面,写在上面会报错,因为下面的永远不会执行到

JDK7处理多个异常

常用方法

获取异常信息

获取异常类名和异常信息

获取异常类名和异常信息,及异常出现的位置

throws方式处理异常

抛出运行时异常

抛出运行时异常,不需要处理

抛出编译时异常

抛出了一个编译时异常,必须得要有人处理

如果不处理,必须继续往上抛,抛给方法调用者

此时由于 setAge 内部抛出了一个异常,在调用该方法时必须得要处理

  1. 必须处理异常

  1. 继续往上抛出

throw与throws区别

throw

用在方法体内,跟的是异常对象名称,只能抛出一个异常对象,表示抛出异常

throws

用在方法声明后面,跟的是异常类名,可以跟多个异常类名,中间使用逗号隔开,表示抛出异常,由方法调用者来处理

编译时异常与运行时异常

什么是运行时异常

所有的 RuntimeException 类及其子类称为运行时异常,在编译时不会报错,在运行过程程序终止运行

什么是编译时异常

程序员必须显示处理,否则程序就会发生错误无法通过编译

编译时异常发生的情况

在编译时就必须处理这个异常

这个代码是读取一个文件,在读取时,它也不确定你这个文件是否存在

如果不存在,你要怎么处理,所以在编译时就要确定好

如果文件不存储该怎么样处理

运行时异常与编译时异常的区别

运行时异常,程序员犯的错误,需要回来修改代码

编译时异常在编译某个程序的时候,有可能会有这样那样的错误,

比如文件找不到,这样的异常就必须在编译时处理

如果不处理就编译不通过

相关文章
|
8月前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RestController
本文主要介绍 Spring Boot 中 MVC 开发常用的几个注解及其使用方式,包括 `@RestController`、`@RequestMapping`、`@PathVariable`、`@RequestParam` 和 `@RequestBody`。其中重点讲解了 `@RestController` 注解的构成与特点:它是 `@Controller` 和 `@ResponseBody` 的结合体,适用于返回 JSON 数据的场景。文章还指出,在需要模板渲染(如 Thymeleaf)而非前后端分离的情况下,应使用 `@Controller` 而非 `@RestController`
336 0
|
存储 运维 监控
飞书深诺基于Flink+Hudi+Hologres的实时数据湖建设实践
通过对各个业务线实时需求的调研了解到,当前实时数据处理场景是各个业务线基于Java服务独自处理的。各个业务线实时能力不能复用且存在计算资源的扩展性问题,而且实时处理的时效已不能满足业务需求。鉴于当前大数据团队数据架构主要解决离线场景,无法承接更多实时业务,因此我们需要重新设计整合,从架构合理性,复用性以及开发运维成本出发,建设一套通用的大数据实时数仓链路。本次实时数仓建设将以游戏运营业务为典型场景进行方案设计,综合业务时效性、资源成本和数仓开发运维成本等考虑,我们最终决定基于Flink + Hudi + Hologres来构建阿里云云原生实时湖仓,并在此文中探讨实时数据架构的具体落地实践。
飞书深诺基于Flink+Hudi+Hologres的实时数据湖建设实践
|
10月前
|
人工智能 分布式计算 容灾
MaxCompute年度发布
本次分享介绍了阿里云MaxCompute在过去一年中的企业级数仓新功能。MaxCompute自2009年诞生,现已服务阿里巴巴集团、蚂蚁集团及众多第三方客户,日处理千万级任务。新功能包括湖仓一体开放性、Data+AI结合、非结构化数据处理(如Object Table)、实时数据处理(如增量物化视图)、性能优化(如MCU2.0和智能调优)以及企业级安全合规能力(如同城容灾和数据脱敏)。这些改进提升了数据处理的效率、安全性和性价比。
|
存储 数据可视化 前端开发
PHP中的数据结构可视化:深入探索与实现
本文探讨了PHP中数据结构可视化的价值,强调其在理解、调试和优化代码中的作用。文中列举了数据结构如数组、栈、队列等,并介绍了三种可视化方法:使用第三方库、自定义渲染函数和集成前端工具。通过示例展示了如何使用PHP的GD库和自定义函数可视化二叉树。最后,指出数据结构可视化并非总是适用,但结合前端技术可实现更高效解决方案,并鼓励开发者充分利用此工具提升项目性能。
197 3
|
传感器 物联网 测试技术
基于物联网技术的养老院管理系统设计与实现_kai
基于物联网技术的养老院管理系统设计与实现_kai
基于物联网技术的养老院管理系统设计与实现_kai
|
XML 存储 前端开发
【Web 前端】HTML、XHTML、XML 有什么区别?
【4月更文挑战第22天】【Web 前端】HTML、XHTML、XML 有什么区别?
|
编解码
vue3+element表格调用后台接口实现Excel导出功能以及导出乱码问题解决
vue3+element表格调用后台接口实现Excel导出功能以及导出乱码问题解决
1216 0
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型:智能旅游路线规划
使用Python实现深度学习模型:智能旅游路线规划
322 2
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。本期,我们邀请到阿里云弹性计算产品运营与生态合作负责人何川,围绕云计算如何加速数据基础设施建设及其未来发展趋势展开探讨。
|
数据可视化 数据挖掘 数据库
低代码开发全解析核心功能及其优势
低代码开发平台采用图形界面与预构建组件加速软件开发,降低技术门槛与成本,并支持敏捷迭代与快速部署。其核心功能包括可视化建模、预构建组件库、业务流程自动化、集成与连接性、多平台应用开发、数据分析报告、版本控制与协作、测试调试工具、安全性与合规性及快速部署更新。优点体现在提升开发速度与效率、降低成本、加强团队合作及提高灵活性与可扩展性。选择平台时需明确需求、评估功能与灵活性、考虑易用性、集成能力、安全性与合规性及成本与定价模型。例如,Zoho Creator作为成熟平台,拥有丰富的经验和广泛的应用案例。低代码开发已成为企业数字化转型的关键工具。
361 13

热门文章

最新文章