课时121:异常处理模型

简介: 前面已经学习了异常处理格式: Try、Catch、Finally、Throws、Throw,现在合起来使用,下面通过一个具体的程序来演示一下。要求定义一个可以实现除法计算的方法,在这方法之中,开发要求如下:(1)在进行数学计算开始与结束的时候,进行信息提示;(2)如果在程序之中,在进行计算的过程中,产生了异常,则要交给调用处进行异常处理。

课时121:异常处理模型

摘要:

1.实现除法计算

2.定义异常处理

 

前面已经学习了异常处理格式: Try、Catch、Finally、Throws、Throw,现在合起来使用,下面通过一个具体的程序来演示一下。

要求定义一个可以实现除法计算的方法,在这方法之中,开发要求如下:

(1) 在进行数学计算开始与结束的时候,进行信息提示;

(2) 如果在程序之中,在进行计算的过程中,产生了异常,则要交给调用处进行异常处理。

 

01.实现除法计算


除法计算实现


定义的 Div 方法,打印输出结果。

代码如下:

class MyMath
// 异常交给被调用处处理则一定要在方法上使用
public static int div(int x,int y) throws Exception {
int temp = 0 ;
System.out.println(“***[START] 除法计算开始”);
Temp = x/y;
System.out.println(“***[END] 除法计算结束。") ;
Return temp;
}
}
public class JavaDemo {
public static void main(String args[]) {
try {
System.out.println (MyMath.div(10,2)) ;
}catch (Exception e) {
e.printstackTrace ()
}
}

代码的基础结构如下,定义一个 MyMath 类,定义 Int 类型的 Div 方法,异常交给被调用处处理,一定要在方法上使用 Throws 方法。在操作开始计算前和结束后输出信息提示。在中间要进行除法计算,先定义 Temp=0,然后 Temp=X/Y;


编译代码,查看程序过程,开始提示信息出现,结束提示信息出现,结果返回没有异常。

image.png

 

02.定义异常处理

 

2.1代码实现


如果将 Div(10,2)改成Div(10,0),结束提示信息会消失。因此产生报错抛出异常之后,后面的代码将不在执行。如果想继续执行后续代码,可以使用 Try,Catch,Finally 的方法强制执行后续代码。

image.png

 

2.2代码优化结果


增加代码:

try{
temp=x/y ;
catch(Exception e){
throw e;//向上抛出异常
}
finally {
System.out.println(n***[END] 除法计算结束。
") ;

再次执行结果:

image.png

此时提示信息也有,异常抛出功能也具备,代码就已经写好了,整个代码把 Try , Catch , Finally 都用上了,这种编写代码方法以后常用,意味着以后可能是网络资源连接和网络连接关闭,在这样的情况下这种结构是有意义的,但是有个小问题:对于此类的操作可以简化,省略掉 Catch与 Throw 的操作。


此时的异常处理就不是通过 Catch 来处理的,而是通过 Div 方法上的 Throws Exception 来处理的,结果没有区别。

代码如下:

class MyMath // 异常交给被调用处处理则一定要在方法上使用
public static int div(int x,int y) throws Exception {
int temp = 0 ;
System.out.println(“***[START] 网络资源连接”);
try{
Temp = x/y;
}finally{
System.out.println(“***[END] 网络连接关闭。") ;
}
Return temp;
}
}

再次编译执行结果:结果一样

image.png

在以后实际开发过程之中,这种异常的处理格式是最为重要的,尤其是当与一些资源进行访问操作的时候尤其重要。

相关文章
|
Android开发 Java Maven
Android--增量更新
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/79718196 一、介绍                 当我们发布新版本的时候,一些用户升级并不是很积极,这就造成了新版本的升级率并不高。
2051 0
|
9月前
|
机器学习/深度学习 人工智能 监控
智能的三重境界:从感知、认知到决策的进化
智能的三重境界:从感知、认知到决策的进化
1141 121
|
6月前
|
人工智能 弹性计算 自然语言处理
2026年阿里云建站费用详解:三大方案功能对比与价格分析
在数字化需求日益增长的当下,搭建网站成为个人展示、企业推广的重要途径。阿里云针对不同技术基础与业务规模,推出 “自购服务器建站”“万小智 AI 模板建站”“云企业官网定制建站” 三种核心方案,价格从 38 元 / 年到数万元 / 年不等,覆盖从个人到中大型企业的全场景需求。本文结合全网最新官方数据与实测体验,从方案细节、价格体系、功能对比、场景适配等维度展开解析,为用户提供客观选型参考。
|
9月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
9月前
|
存储 缓存 测试技术
《3D动作游戏连招开发:拆解动态判定与多感官反馈的核心》
本文记录3D硬核动作游戏角色连招系统的开发实践,针对早期依赖引擎状态机导致的操作延迟、打击反馈单一等问题,从需求拆解、技术选型到核心模块开发展开优化。通过联合多岗位梳理“输入容错、动画流畅、多感官反馈”需求,放弃传统状态机,自研“连招状态树”提升响应速度;开发“动态判定器”实现判定框随动作实时变化,构建“多感官反馈中枢”同步音画物理效果。经性能优化(碰撞体分层、判定缓存)与细节打磨(输入缓冲调整、多目标命中支持),解决卡顿、漏判等痛点,最终实现“行云流水且拳拳到肉”的战斗体验,为动作游戏连招系统开发提供实用路径。
730 11
|
10月前
|
监控 安全 Devops
DevOps 流水线的网络安全盲区与防御策略
在软件研发中,DevOps流水线加速了开发与交付,但也带来严重安全风险。自动化节点和第三方集成成为攻击入口,凭证泄露、供应链渗透、配置错误和依赖混乱等问题频发。企业需构建全流程安全体系,嵌入自动化安全策略,强化访问控制与监控,提升全员安全意识,实现效率与安全的协同发展。
700 1
|
人工智能 数据挖掘 Linux
DeepSeek满血版大赏:官方得了“MVP”,第三方是“躺赢狗”?
DeepSeek开源了6710亿参数的R1和2360亿参数的V3两大满血版模型,助力第三方AI平台快速提升性能。此举不仅扩大了DeepSeek的技术影响力,还通过数据飞轮效应优化模型,同时为企业级用户提供灵活变现方式。对于大众,这意味着更多选择、更低使用成本和更快技术迭代。尽管第三方平台可能“阉割”或定制功能,但它们将顶级AI带入更多场景,如比亚迪车机、腾讯元宝等,让AI更普及。官方与第三方各有所长:官方提供最强性能,第三方确保稳定体验。最终,DeepSeek与第三方共同推动AI发展,实现技术普惠。
832 2
|
运维 Java 编译器
Java 异常处理:机制、策略与最佳实践
Java异常处理是确保程序稳定运行的关键。本文介绍Java异常处理的机制,包括异常类层次结构、try-catch-finally语句的使用,并探讨常见策略及最佳实践,帮助开发者有效管理错误和异常情况。
1322 6
|
C语言
C语言函数返回值详解
本文详细解析了C语言中函数返回值的概念与应用。从函数的基本定义入手,深入探讨了不同类型返回值的作用及意义,并提供了实用的编程示例,帮助读者更好地理解和使用函数返回值。通过本文,你将掌握如何有效利用返回值优化代码结构与功能实现。
1773 2
|
存储 安全 编译器
【C++核心】一文理解C++面向对象(超级详细!)
这篇文章详细讲解了C++面向对象的核心概念,包括类和对象、封装、继承、多态等。
463 2