java中的自定义异常
来源:互联网 发布:superslide.min.js 编辑:程序博客网 时间:2024/06/18 18:43
所谓的自定义异常,也就是自己定义一个类,继承异常类RuntimeException, 经常需要定义一个或多个构造函数,以在对象中存储错误消息。
/*ExceptionDemo4.java中的异常,不好认,能不能定义一个符合我的程序要求的问题名称。异常的信息都可以自定义,那么异常的名字是否可以定义呢?是否可以定义成更符合自己程序的阅读呢?之前的几个异常都是java通过类进行的描述。并将问题封装成对象,这是符合面向对象思想。其实:异常就是将问题封装成了对象。所以我也准备对自己所需要的问题进行类的描述。发生编译失败:ExceptionDemo5.java:43: 错误: 不兼容的类型 throw new NoAgeException(age+",年龄数值非法"); ^ 需要: Throwable 找到: NoAgeException1 个错误不兼容,不明白,查阅,提示中说需要Throwable,啥东西?搜索API。看到Throwable描述。发现。它是异常和错误的超类(父类)原来它是异常体系的顶层类。Throwable|--Error|--Exception通过阅读:自定义异常被抛出,必须是继承Throwable,或者继承Throwable的子类。该对象才可以被throw抛出。原来这个异常体系具备一个特有的特性:可抛性:可以被throw关键字操作。继承选择父类时,更为确切是继承Exception。但是发现编译又一次失败了。ExceptionDemo5.java:62: 错误: 未报告的异常错误NoAgeException; 必须对其进行捕获或声明以便抛出 throw new NoAgeException(age+",年龄数值非法"); ^1 个错误通过这个编译失败提示,发现自定义的异常和之前所使用的异常(空指针异常,角标越界异常,无效参数异常有不同)抛出哪些异常没有这个失败提示?那么之前的异常和自定义的异常有什么区别呢?通过查看api的继承体系发现,之前的异常都是Exception下面的RuntimeException子类的子类。阅读RuntimeException描述中有明确说明,这个运行时异常以及其子类都无需进行声明。可以将自定义的异常继承RuntimeException.*///自定义异常。描述Person的年龄数值非法。/**只要是本项目的Person的年龄出现非法值就会发生该异常。*/class NoAgeException extends RuntimeException{/*为什么要定义构造函数,因为看到Java中的异常描述类中有提供对问题对象的初始化方法。*/NoAgeException(){super();}NoAgeException(String message){super(message);// 如果自定义异常需要异常信息,可以通过调用父类的带有字符串参数的构造函数即可。}}class Person{private String name;private int age;Person(String name,int age){//加入逻辑判断。if(age<0 || age>200){throw new NoAgeException(age+",年龄数值非法");}this.name = name;this.age = age;}//定义Person对象对应的字符串表现形式。覆盖Object中的toString方法。public String toString(){return "Person[name="+name+",age="+age+"]";}}class ExceptionDemo5 {public static void main(String[] args) {Person p = new Person("xiaoming",-20);System.out.println(p);}}运行结果为:
1 0
- Java中的自定义异常
- java中的自定义异常
- java中的自定义异常
- java中的自定义异常
- Java中的自定义异常
- java中的自定义异常
- JAVA中的自定义异常捕获
- java中的自定义异常类
- Java中的Exception异常 自定义异常
- Java中的Exception异常 自定义异常
- java中的异常抛出及自定义异常
- Java基础笔记 – Java中的Exception异常 自定义异常
- Java基础笔记 – Java中的Exception异常 自定义异常
- Java自定义异常在项目中的应用
- java4Android(12)java中的异常(13)自定义异常,异常处理的两种方式
- 简述java中的自定义异常的写法----about My Exception
- Java 异常(Exception)&自定义异常
- Java异常处理-----自定义异常
- Flume负载均衡
- 对线性回归、逻辑回归、各种回归的概念学习
- Android开发之自定义控件——直尺
- 东亚王瑜羞辱提示
- linux 虚拟机时间与本地时间相差15分钟解决方法
- java中的自定义异常
- android long转时间,多了8小时的解决
- java修饰符的权限范围
- GIMMS NDVI3g V1.0发布
- Spark SQL电影分析案例
- iOS-图文表并茂,手把手教你GCD
- 1613-3-傅溥衍 总结《2016年11月2日》【连续三十三天总结】
- 《大话数据结构》
- 杭电OJ 1005