java异常处理的简单练习
作者:jingxian 发布时间:2023-12-01 02:20:48
标签:java,异常处理
异常的练习:
老师用电脑上课。
开始思考上课中出现的问题。
比如问题是
电脑蓝屏。
电脑冒烟。
要对问题进行描述,封装成对象。
可是当冒烟发生后,出现讲课进度无法继续。
出现了讲师的问题:课时计划无法完成。
class Teacher
{
private Computer cmp;
public void shangKe()throws NoPlanException /*声明异常*/
{
cmp=new Computer();
try
{
cmp.run();
}
catch(LanPingException e) /*电脑捕获处理蓝屏的异常*/
{
cmp.recst();
}
catch(MaoYanException e) /*电脑捕获处理电脑冒烟的异常*/
{
throw new NoPlanException("上课无法继续,因为"+e.getMessage()); /*电脑无法处理这个异常,继续把这个异常抛给老师来处理*/
}
System.out.println("老师上课"); /*没有异常,老师就正常上课*/
}
}
class LanPingException extends Exception /*自定义蓝屏异常*/
{
LanPingException(String m)
{
super(m);
}
}
class MaoYanException extends Exception /*自定义电脑冒烟异常*/
{
MaoYanException(String m)
{
super(m);
}
}
class NoPlanException extends Exception /*自定义老师处理异常*/
{
NoPlanException(String m)
{
super(m);
}
}
class Computer
{
private int state=3; /*不同的异常状态选择*/
public void run()throws LanPingException,MaoYanException
{
if(state==2)
{
throw new LanPingException("电脑蓝屏了"); /*符合条件就抛出异常对象*/
}
if(state==3)
{
throw new MaoYanException("电脑冒烟了");
}
System.out.println("电脑运行");
}
public void recst()
{
System.out.println("电脑重启");
}
}
class ExceptionText
{
public static void main(String args[])
{
Teacher t=new Teacher();
try
{
t.shangKe();
}
catch(NoPlanException e) /*老师捕获处理电脑冒烟异常*/
{
System.out.println(e.toString());
}
}
}
运行结果:
NoPlanException: 上课无法继续,因为电脑冒烟了


猜你喜欢
- 本文给大家介绍的是监听Fragment的触摸事件实现。如果大家有更好的机制,可以留言交流,下面来看看详细的介绍:大家都知道,我们的activ
- 前台代码: <asp:Button ID="Button1" runat="server" T
- 前言建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一
- 1.@GrpcServise的作用和优势在没有使用@GrpcServise注解编写服务端时,我们通常需要自定义Server以及端口,包括st
- 本文实例讲述了Android编程基于自定义View实现绚丽的圆形进度条功能。分享给大家供大家参考,具体如下:本文包含两个组件,首先上效果图:
- JVM 的主要作用是什么?JVM 就是 Java Virtual Machine(Java虚拟机)的缩写,JVM 屏蔽了与具体操作系统平台相
- Java的List在删除元素时,一般会用list.remove(o)/remove(i)方法。在使用时,容易触碰陷阱,得到意想不到的结果。总
- session超时退到登录页面最近发现使用的工程居然没有session超时机制,功能太欠缺了,现在把追加方法分享出来,里面有一些坑,大家自由
- 在上篇文章,我们介绍了Get方法的设计过程和测试结果,现在我们需要对前面代码进行重构和修改,本篇需要完成以下目标。1)重构Get方法2)如何
- 前言空间分配要点有:一是空间分配的连续性;二是动态内存申请;三是防止程序执行中出现异常错误。提示:开始讲解了嗷~后续会根据精力持续更新嗷!!
- Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或者间接的继承自该类构造方法:public Object()回
- 本文实例讲述了C#实现翻转字符串的方法。分享给大家供大家参考。具体实现方法如下:Func<string, string> Rev
- 需求假设要设计一个名为estimate()的函数,估算编写指定行数的代码所需的时间,并且希望不同的程序员都可以使用该函数。对于所有的用户来说
- 引言使用微信时我们会发现,首次进入微信的好友列表时,会加载好友头像,但是再次进入时,就不用重新加载了,而且其他页面都不用重新加载,说明微信的
- 本文实例讲述了C#非矩形窗体实现方法。分享给大家供大家参考。具体实现方法如下:using System;using System.Colle
- 场景yitter-idgenerator 是基于雪花算法进行改造的分布式ID自增算法,集成时需要为每个服务设置唯一的机器号,才能保证生成的I
- 本文实例讲述了Java编程中文件读写的方法。分享给大家供大家参考,具体如下:Java中文件读写操作的作用是什么?回答这个问题时应该先想到的是
- 本文实例为大家分享了C语言实现字符串拼接和拷贝的具体代码,供大家参考,具体内容如下字符串拼接:#include<stdio.h>
- SpringCloudStream配置以下配置摘自《SpringCloud微服务实战》,配置主要包括两大部分:Stream配置(基础配置、通
- 这几天做项目,有些地方的图片需要用到圆形图片,所以百度了一下,在github上找到一个开源项目,处理很简单,效果如下: 使用起来特