种太阳✔ 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条)

报告相同问题?

悬赏问题

  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度