种太阳✔ 2015-12-09 15:40 采纳率: 66.7%
浏览 1645
已采纳

求问关于java中异常处理的问题。。

不是很理解java异常处理中的try catch语句块,比如说我的catch语句块中是一个System.out.println("caught IOEexception":e.getMessage()),那么这个catch语句起到的作用就是提示我一下哪个地方有异常吗?然后我再去它提示我发生异常的地方去修改我的程序?

那么如果我的catch语句里面什么都没写,只是一个catch{};由于写了try catch语句块编译一定会通过,那岂不是说 假如现在我的程序发生了异常 然后被捕获到了 可是它没有提示我碰到发生异常的信息,并且编译通过了 然后运行的时候就会出错 这样的话使用了try catch语句块岂不是还不如不用吗。。?因为如果我不用try catch语句块的话 我的编译就通不过 会提示我哪里出错了 我还可以去改。但是使用了try catch语句块后,编译通过了 可是运行时就出错了 。。
刚开始学习java 真心想不通了〒_〒

  • 写回答

8条回答 默认 最新

  • 毕小宝 博客专家认证 2015-12-10 00:44
    关注

    用try-catch捕获异常能保证程序即使遭遇异常也扔能安按我们的设计流程运行而不会中断。
    异常分支catch中的异常处理通常是根据你的业务逻辑来做的,打印异常只是一种简单的处理方式,当然还有其他的处理,比如:记录异常到数据库,SQL异常的话在异常分支里作数据回滚,socket异常的话重置处理状态………
    你直接在catch中是空分支的话,异常就被淹没了,即使发生了了异常,你也不知道,因为你是简单处理了异常,所以程序不会抛错。
    如果没有try-catch 捕获异常,那么异常就会由虚拟机抛出,从而导致程序中断。这个就是异常捕获的意义:程序可能遭遇错误,但是仍然能正常运行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA