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

解决方案 »

  1.   

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

  2.   

    如果你不想捕捉,就需要把异常往上一级继续抛出
    比如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级别为止
        }
    }
      

  3.   

    在java中如果方法抛出异常,如果调用该方法的方法中就必须try catch捕获或者throws继续上上层抛出异常,
    例如:Class.forName()这个方法你看他的源码知道他的方法签名是public forName(String className) thorows ClassNotFoundExceptiontry {
      Class.forName("");
    } catch(ClassNotFoundException) {}

    public void method1() throws ClassNotFoundException {
       Class.forName("");
    }如果只是代码可能导致出现异常,这个异常可以不处理。
    int i = 0;
    int j = 10;
    int k = j / i;
    这里就有个异常,但是你可以不处理,但是这样不是一个号习惯