刚开始学习Java的时候,可能不会去考虑Java的异常处理,更多的是关心这段代码的功能是否实现,但是到了后期我们必须的关心到Java代码的异常处理。也就是我们平时讲到的抛出异常(thrown Exception),警戒区(try)以及异常的捕获(catch)。
有面向对象语言对象功底的开发员都知道一个问题,在面向过程的语言里面,你在调用函数时,你是怎么知道函数调用是否成功的?一般是根据函数返回值来判断,比如返回0表示成功,返回-1表示失败。
这种出错处理方式比较简单,有时你还想知道更多的出错信息。在面向对象语言里,使用异常(其实也是类)就可以很好的解决。把出错信息封装到异常类里面,这样当出错的时候,就可以根据捕获的异常对象获取更多的出错信息。
在java里,throw关键字是用在语句里面抛出异常,throws是用来声明函数可能返回异常(这在平时中是用的最多的,因为在写代码的时候我们很难去了解到自己写的代码可能存在那些问题,就可以通过这种方式将它抛出,通过catch捕获处理)。例如:
public class Jdbctest{
public static void test(Object o) throws Exception {
if(o == null){
throw new Exception("在这里出错了,参数是null对象");
}
}
public static void main(String args[])
{
try{
test(null);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
控制台输出结果
java.lang.Exception: 在这里出错了,参数是null对象
at Jdbctest.test(Jdbctest.java:6)
at Jdbctest.main(Jdbctest.java:12)
分析:
主体main函数执行test方法,抛出异常。通过catch捕获到异常,并通过printstacktrace()打印出来。