package com.exception; //自定义异常一般继承Exception,如果想定义RunTimeException异常,继承RuntimeException //1、必须提供一个无参数构造器和一个带字符串有参数构造器,提供getMessage返回值。 //getMessage只能打印出自定义的字符串,不能打印出哪行代码错误。 //如果异常不用try处理一直用throws往上抛,会一直抛到最后一个方法然后,打印错误给控制台。 public class ActionException extends Exception{ public ActionException(){} public ActionException(String name){ super(name); } //创建一个可以接受异常信息的参数构造器 Throwable接收Exception信息。 //Throwable是Exception父亲, 多态。 public ActionException(Throwable thr){ super(thr); } } _________________________________________________________________ package com.exception; public class TestException { public double init = 30.0; public void bid(String bidPrice) throws ActionException { double d = 0.0; try { d = Double.parseDouble(bidPrice); } catch (Exception e) { e.printStackTrace(); throw new ActionException("竞拍价必须是数值,不能包含其他字符!"); } if(init >d) { throw new ActionException("竞价比起拍价格低"); } init = d; } public static void main(String[] args) { TestException t = new TestException(); try { t.bid("d"); } catch (ActionException e) { // TODO Auto-generated catch block e.printStackTrace(); System.err.print(e.getMessage()); } } }
?