关于异常的一个小问题~

一般情况下,我是dao层写一个方法抛出了异常,在service层调用这个方法时 必须要用try-catch捕获,否则报错, 但是,刚刚发现抛出InvalidValueException, 调用时 还没有用try-catch捕获,但是也不报错,只是异常没有被捕获,直接抛出到控制台了,为什么这里没有捕获 代码里面却不报错呢??

InvalidValueException肯定是运行时异常,是RuntimeException的子类,所以不必要你显式的try catch。
但你假如也try catch了,肯定也会捕获的,肯定也不会抛到外面去的。

要想省事
try{
....
}catch(Exception e){//注意:此处是捕获Excetion,而不是其子类,这样所有的
//异常都能捕获,但是不是运行时错误。
e.printStackTrace();
}

我是来膜拜1楼的

你控制台看到的不会是你在catch语句中的e.printStackTrace(); 的结果吧。你是用IDE生成的?