黑马程序员技术交流社区
标题:
java 7新特性
[打印本页]
作者:
马云
时间:
2012-3-28 12:47
标题:
java 7新特性
catch (IOException|SQLException ex) {
logger.log(ex);
throw ex;
}
捕获异常可以这么写,这是不是一个很好的改进呢,再也不用写难懂的嵌套块了
记住只有java 7这个版本才可以用哦。
作者:
翟友伟
时间:
2012-3-28 14:08
是的 简洁明了
作者:
和心愿
时间:
2012-3-28 15:23
java7还有一个增强throw语句也很好用啊
class FirstException extends Exception {
}
class SecondException extends Exception {
}
public class ExceptionDemo {
public static void main(String[] args) {
try {
show("fsirst");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void show(String str) throws FirstException,SecondException {
try{
if(str.equals("first")) {
throw new FirstException();
}else {
throw new SecondException();
}
}catch(Exception e) {
throw e;
}
}
}
这个例子,try块中只能抛出两种异常,但是因为catch里的类型是 Exception,
在java SE7以前的版本中,在方法声明中throws 只能写Exception,但是在java SE7及以后的版本中,可以在throws后面写FirstException和SecondException
——编译器能判断出throw e语句抛出的异常一定来自try块,
并且try块只能抛出FirstException和SecondException。
所以尽管catch里的异常类型是Exception,编译器仍然能够知道它是FirstException和 SecondException的实例。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2