专修虚拟机 2015-11-30 11:59 采纳率: 0%
浏览 4530

jdbc数据库连接的抛出异常问题

} catch (ClassNotFoundException e) {
System.out.println("驱动类无法找到!");
thrownew RuntimeException(e);
} catch (SQLException e) {
System.out.println("数据库访问异常!");
thrownew RuntimeException(e);

                    如上所写thrownew RuntimeException(e);这样写是什么意思?为什么要写这句!写这句的作用是什么?
  • 写回答

5条回答 默认 最新

  • 晓呆同学 2015-11-30 12:05
    关注

    throw new RuntimeException(e)是把异常包在一个运行时异常中抛出。

    我们常看见这种写法
    try{
    ....

    }catch(Exception e){
    e.printStackTrace( );
    throw new RuntimeException(e);

    }
    这是处理没法进一步处理的异常的一般做法。try块中出现了一个异常,它被catch住了,我们首先要在标准输出上打印出异常但是如果没有throw这句,这个错误就静悄悄地被catch块吃掉了,程序会继续运行。可这个时候很可能你的程序的状态已经不对了,继续下去也没有什么意义,所以应该继续抛出这个异常。你当然可以写throw e;,但是这个e是一般的异常,如果这样抛出的话,你得在这个函数头上用throws来声明,比如:
    public void abc() throws Exception
    然后调用这个函数的函数也还得这么干,所以一般的处理是把e包装成运行时异常:new RuntimeException(e),这样就不需要在函数头声明了。

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置