第9天:自定义异常
来源:互联网 发布:淘宝上卖的茶杯犬真吗 编辑:程序博客网 时间:2024/06/07 18:09
1.自定义异常的意义:
尽管java虚拟机提供了各种的异常种类,但是面对多样的业务需求时我们自定义一些规则(例如年龄不能为负数),这时我们就需要来自定义一些异常。
自定义异常内容主要包括
1,自定义异常申明(必须继承系统原有的异常类,)
class FuShuException extends Exception //申明一个自定义异常{ FuShuException(String msg){ super(msg); }}
2, 自定义异常信息的包装;(异常信息:分母不能为负)
if( b<0) throw new FuShuException("异常信息:分母不能为负")
在产生异常时只有两种处理方法;
1. 使用try{ }catch{ }finlly{ }直接处理,
2. 使用throws throws 抛出,让上一级处理,
需要注意的是;
在某些情况时对抛出有限制;
比如在由继承关系时,子类只能抛出父类继承的异常,或者异常的子异常,
如果父类继承多个异常,那么子类只能抛出父类异常的子集。
如果父类没有抛出异常,那么子类也不能抛出异常,只能使用try{ }catch{ }在方法内直接处理。
finally{};
try{ }catch{ }finlly{ }中的finally{}中的程序是无论程序是否异常都会执行的语句,其作用为断开数据库等操作从而来释放资源,
在开发过程中因为要考虑程序的健壮性所以在catch完所有可能的异常后通常会加一个catch(Exception e)用于接受可能遗漏的异常。
下面是根据学习教程写的一个自定义异常练习。
//需求 分数中除了系统默认的分母不能为零外 再自定义一个分母不能为负的异常 FuShuException
public class ExceptionDemo { public static void main(String[] args) { Demo2 ex=new Demo2(); try{ int c= ex.div(4, -1); System.out.println("c="+c); }catch(FuShuException e) { System.out.println(e.toString()); System.out.println("除数出现负数啦~~"); } System.out.println("程序结束"); } }class Demo2{ int div(int a,int b) throws FuShuException{ /*thorws 用来接收throw抛出的异常*/ if( b<0) throw new FuShuException("异常信息:分母不能为负")//新建一个自定义异常类并且赋予异常信息。 return a/b; }}class FuShuException extends Exception //申明一个自定义异常{ FuShuException(String msg){ super(msg); }}
0 0
- 第9天:自定义异常
- 第08天 异常处理&Throwable常用方法&自定义异常
- Java学习第10天(4):异常机制-自定义异常
- 第9章 异常
- 第9章 异常
- 第9章 异常
- 第11天 自定义异常、权限修饰符、jar包、清除重复元素
- 【慕课笔记】第一章 异常与异常处理 第4节 JAVA中的异常抛出以及自定义异常
- python第15天:异常
- 第9章:异常处理
- 自定义异常
- 自定义异常
- 自定义异常
- 自定义异常
- 自定义异常
- 自定义异常
- 自定义异常
- 自定义异常
- scrapy shell [url] TypeError: 'float' object is not iterable
- 用JAVA语言实现的BM算法
- git存储用户名与密码
- 使用pyinstaller工具打包python项目代码生成exe文件
- springmvc对ajax的支持
- 第9天:自定义异常
- Android开发fastjson错误:JSONException: default constructor not found. class com.xx...
- 我的GitHub搭建博客
- php根据URL获得网页内容
- C/S架构的简单文件传输系统的实现
- 获取了一个数组对象,可以判断它所在的下标
- Spark应用(一)提取RDD内部信息和信息放入RDD
- 重建二叉树,二叉树的镜像,二叉搜索树的后序遍历
- 最简单的Dagger2入门教程