日期:2014-05-19  浏览次数:20702 次

java的异常捕获是必须的吗?
新人写了个用Java查询mysql数据库的测试
结果我发现ecplise会提示我 需要设置 SQLException ClassNotFoundException异常的处理机制,其实我认为这些错误在测试阶段就能纠正过来,生产环境并不会发生,这样做没必要。
写十行代码还得再加五行的异常处理,javaer都是这么过来的?没别的方法吗?

------解决方案--------------------
必须捕获 或者抛出
------解决方案--------------------
java虚拟机在编译的时候,
会检查代码可能会出异常的地方,
比如需要的资源(jar包,或者类)找不到,此时虚拟机内部
就会抛出异常,对于抛出的异常,你必须处理或者抛给你上一级。
------解决方案--------------------
如果你不想捕捉,就需要把异常往上一级继续抛出
比如

Java code
class Test {
    public static void test() throws Exception { //方法声明的时候带有异常抛出
         System.out.println("1");
        throw new Exception("test"); 
    }

    public static void test2() { //方法声明的时候不带异常抛出
        try {
            System.out.println("2");
            test(); //那么调用带有异常抛出的方法的时候,就必须捕捉异常
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public satatic void main(String[] args) throws Throwable {
        test(); //如果不想捕捉异常,那么就在方法声明的时候继续向上级抛出异常
         test2();//这样,方法异常的时候,程序就中止,由上级继续处理异常,直到JVM级别为止
    }
}