Java中try catch处理异常示例
作者:java时光 发布时间:2023-11-07 00:43:17
标签:java,try,catch
描述说明:
public class TryCatchStu {
/*try catch:自己处理异常
*try{
* 可能出现异常的代码
*}catch(异常类名A e){
* 如果出现了异常类A类型的异常,那么执行该代码
*}...(catch可以有多个)
*finally{
* 最终肯定必须要执行的代码(例如释放资源的代码)
*}
*代码执行的顺序:
*1.try内的代码从出现异常的那一行开始,中断执行
*2.执行对应的catch块内的代码
*3.继续执行try catch 结构之后的代码
*注意点:
*1.如果catch内的异常类存在子父类的关系,那么子类应该在前,父类在后
*2.如果finally中有return语句,那么最后返回的结果肯定以finally中的返回值为准
*3.如果finally语句中有return,那么没有被处理的异常将会被吞掉
*重写的注意点:
*1.儿子不能比父亲的本事大
*2.儿子要比父亲开放
*3.儿子不能比父亲惹更大的麻烦(子类的异常的类型不能是父类的异常的父类型)
*异常类Api:
*1.getMessage():获取异常描述信息字符串
*2.toString():返回异常类的包路径和类名和异常描述信息字符串
*3.printStackTrace():除了打印toString的信息外,还要打印堆栈信息
*/
实例代码:
public static void main(String[] args)
{
System.out.println(demo());
}
public static int demo(){
GirlHome gh = new GirlHome("小陈陈",'男',28);
try{
gh.intoHome();
System.out.println("进入了女生宿舍");
return 0;
}catch(SexOutException e){
//System.out.println("出现了异常");
//System.out.println(e);
e.demo();
e.printStackTrace();
}catch (AgeOutException e) {
// TODO: handle exception
}finally{
System.out.println("我必须被执行");
}
return 1;
//System.out.println("愉快的一天结束啦");
}
class GirlHome {
public String name;
public char sex;
public int age;
public GirlHome(String name,char sex,int age)
{
super();
this.name = name;
this.sex = sex;
this.age = age;
}
//如果发现进入者是男的,那么抛出性别异常
public void intoHome() throws SexOutException,AgeOutException{
if(sex!='女'){
SexOutException se = new SexOutException(name+"你不是女的,滚!!!");
throw se;
}
if(age>25){
throw new AgeOutException(name+"你的年龄太大了,滚!!!!");
}
System.out.println(name+"开心的进入了宿舍");
}
public void demo()throws Exception{}
}
class SmallGirlHome extends GirlHome{
public SmallGirlHome(String name, char sex, int age)
{
super(name, sex, age);
// TODO Auto-generated constructor stub
}
@Override
public void intoHome() throws SexOutException,AgeOutException
{
}
public void demo()
{
}
class AgeOutException extends Exception{
public AgeOutException(String message){
super(message);
}
}
class SexOutException extends Exception{
public SexOutException(String message){
super(message);
}
public void demo(){
System.out.println("爱啦啦阿拉");
}
}
来源:https://blog.csdn.net/wanghuiwei888/article/details/78818203


猜你喜欢
- Springboot 在普通类型注入Service或mapper最近遇到一个难题(大佬可能感觉这太简单了把),对于我这样的小白来说,确实有些
- 前章知识: 点此跳转HTML简介:超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息
- 以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码。当然,nutch对于爬虫考虑的是十分全面和细致的。
- java 线程锁在Java线程中运用synchronized关键字来达到同步的 synchronized可以锁方法,锁类,锁对象,锁代码块方
- 这篇文章主要介绍一下如何实现View的3D旋转效果,实现的主要原理就是围绕Y轴旋转,同时在Z轴方面上有一个深入的缩放。演示的demo主要有以
- 本文实例讲述了Android 开发使用PopupWindow实现弹出警告框的复用类。分享给大家供大家参考,具体如下:Android开发中相信
- 题目描述:给定一 m*n 的矩阵,请按照逆时针螺旋顺序,返回矩阵中所有元素。示例:思路:这是一道典型的模拟问题:我们可以分析一下,遍历前进轨
- 需求是要做几个小游戏的抽奖功能,需要根据不同的游戏有不同的抽奖规则,其中也有很多共性,可归纳为只按奖品占比抽取、奖品占比与奖品数量抽取、分段
- 使用RedisTemplate根据前缀获取key列表我们在使用 Redis 的时候,会需要获取以某个字符串开头的所有 key批量获取 key
- 图的实际应用在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。地图:我
- Android的WebView做不到ios的WebView那样可以很方便的直接预览pdf文件。要实现利用WebView预览pdf我们可以使用
- Struts2中提供了数据校验验证数据例如验证邮件、数字等。验证方式有3种:一是通过validate()方法,二是通过Xml,三是使用注解方
- 一、概述顶部ViewPager指示器的字体变色,该效果图是这样的:大概是今天头条的app,神奇的地方就在于,切换ViewPager页面的时候
- 本文实例为大家分享了java实现砸金蛋抽奖的具体代码,供大家参考,具体内容如下代码如下需求:用户每一次砸金蛋,抽中一等奖的概率为2% 二等奖
- 分组类控件主要包括容器控件(Panel),分组框控件(groupBox)和选项卡控件(TabControl)等控件。一、Panel控件Pan
- 修改FeginCilent定义的服务名到指定服务通过覆盖类来修改对应的服务名,这里将所有的FeginClient对应的服务名都修改好。pac
- 一、时间的单位转换1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微秒(μs)&nb
- 在之前的章节中,我们都是假设程序中只有一条执行流,程序从main方法的第一条语句逐条执行直到结束。从本节开始,我们讨论并发,在程序中创建线程
- 本文实例讲述了Android使用WebView播放flash及判断是否安装flash插件的方法。分享给大家供大家参考。具体实现方法如下:一、
- 使用Android Studio 创建Android项目,分享给大家(1) 说明:还有一部分人在坚持使用 Eclipse ,建议抓紧换掉。使