博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java异常——RuntimeException和User Define Exception
阅读量:7067 次
发布时间:2019-06-28

本文共 888 字,大约阅读时间需要 2 分钟。

1.RuntimeException

今天摩根IT电面的时候被问到Exception和RuntimeException的区别,当时答不出来,大囧,晚上来学习一下。

首先看一段代码,主要内容就是将字符串类型的数字转化为整型的数字,然后让两个数字相乘,代码如下:

View Code

查看parseInt方法的源代码如下:

View Code

我们发现这个方法中抛出了NumberFormatException异常,但是在上面的代码中我们没有找到try...catch来处理,这是为什么呢。按照我们异常处理的知识,如果一个方法通过throws抛出了异常,那么可以在抛出异常的方法中不使用try...catch,但是在调用这个方法的地方必须有try...catch来处理。

下面来观察NumberFormatException类的继承关系:

从上图我们可以发现NumberFormatException是RuntimeException的子类,那么这就需要我们清楚Exception和RuntimeException的概念:

  1. Exception:在程序中必须使用try...catch进行处理。
  2. RuntimeException:可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。

对于RuntimeException的子类最好也使用异常处理机制。虽然RuntimeException的异常可以不使用try...catch进行处理,但是如果一旦发生异常,则肯定会导致程序中断执行,所以,为了保证程序再出错后依然可以执行,在开发代码时最好使用try...catch的异常处理机制进行处理。

 

2.User Defined Exception

下面给出一个自定义异常的实例:

View Code

输出结果为:

MyException: 自定义异常

本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/04/24/2468873.html,如需转载请自行联系原作者

你可能感兴趣的文章
Go语言中分片(Slice)的其他使用方式
查看>>
C# Enum.Parse
查看>>
prototype资源
查看>>
Hello-World
查看>>
UNP卷1:第四章(基本TCP套接字编程)
查看>>
strcpy与memcpy以及strncpy
查看>>
centos下安装redis 以及 phpredis扩展
查看>>
使用python脚本利用SSH协议通过TFTP备份批量备份山石防火墙配置
查看>>
支付宝手机支付集成
查看>>
路由汇总实例
查看>>
误删grub.conf修复
查看>>
我的友情链接
查看>>
Codeforces 138D World of Darkraft 题解《挑战程序设计竞赛》
查看>>
word2vec原理推导与代码分析
查看>>
Nginx葵花宝典—草根站长Nginx运维百科全书
查看>>
javascript学习--innerHTML
查看>>
springBoot(14):使用SQL关系型数据库-事务处理
查看>>
python https实现方法
查看>>
linux下php扩展(php ext)开发记录
查看>>
易连云打印机PHP接口
查看>>