自定义异常

来源:互联网 发布:mac os x cdr下载 编辑:程序博客网 时间:2024/06/05 20:39

------- android培训、java培训、期待与您交流! ----------

 

package cn.object.exception;/** * @author tom 因为项目中会出现特有的问题,而这些问题并未被java所描述并封装对象。 *         所以对于这些特有的问题可以按照java对问题封装的思想。将特有的问题,进行自定义的异常封装 *  *         自定义异常。 需求:在本程序中,对于除数是-1,也视为是错误的是无法进行运算的。 那么就需要对这个问题进行自定的描述. *  *         当在函数内部出现了throw抛出异常对象,那么就必需要 给出对应的处理动作: 1:要不在内部try catch处理 *         2:要么在函数上声名,让调用者处理 一般情况在函数内出现异常,函数上需求声名 *  *  如何自定义异常信息? *  因为父类中已经把异常信息的超做都完成了 *  所以之类只要在构造时,讲异常信息传递给父类通过super语句。那么就可以直接通过getMessage方法获取自定异常信息了 *   *  自定义异常: *  必需是自定义类继承Exception。 *   *  继承Exception原因: *  异常体系有一个特点:因为异常类和异常对象都需要被抛出。他们都具备可抛性,这个可抛性是Throwable这个体系独有特点 *  只有这个体系中的类和对象才可以被throws和throw操作 */public class ExceptionZiDingYi {public static void main(String[] args) {Demo2 d = new Demo2();try {int x = d.div(4, -5);System.out.println("x=" + x);} catch (FuShuException e) {System.out.println(e.toString());System.out.println("错误的负数是"+ e.getX());//调用返回这个错误数字方法 }System.out.println("over");}}class FuShuException extends Exception {  //继承Exception是因为他是Throwable的子类其实也可以继承Error和Throwable (看下面注释代码)private String msg;//为了接受错误信息private int x;//为了接受错误的数字是几FuShuException(String msg,int x) {super(msg);this.x=x;}public int getX(){return x;}//返回错误的数字}class Demo2 {int div(int a, int b) throws FuShuException {if (b < 0)throw new FuShuException("除数不能为负数\n这个负数是",b/*抛出这个数字*/);// 手动通过throw关键字抛出一个自定义异常对象return a / b;}}/*class Throwable {private String message;Throwable(String message) {this.message = message;}public String getMessage() {return message;}}class Exception extends Throwable {Exception(String message) {super(message);}}*//*throws和throw的区别????????? *1:throws使用在函数上。throw使用在函数内 *2:throws后面跟的是异常类。可以跟多个,用都好隔开,throw后跟的是异常对象 *例子在上面  * */


 

0 0
原创粉丝点击