java吧 关注:1,243,307贴子:12,716,581

请问异常到底是个什么机制,该如何去理解这个东东呢?

只看楼主收藏回复

我纯粹是兴趣爱好学习编程,奈何本吧学习氛围低,大多都是在讨论就业问题。自学完了C语言基础,开始学习java前面的封装继承多态还比较好理解。到了异常这里我是异常的懵逼,这到底是个什么玩意,还可以抛出?都说java好学简单。我感觉c语言里面的指针都比java容易理解,java要记的东西实在太多了各种各样的类,名字还长得一批。


IP属地:重庆1楼2019-09-23 15:49回复
    现阶段没必要去理解,因为IT的一大好处就是抽象,将底层抽象出一个比较高级的概念,让你不用去理解底层的细节。


    IP属地:北京2楼2019-09-23 15:55
    收起回复
      照葫芦画瓢,比指针好理解多了


      3楼2019-09-23 16:08
      收起回复
        C内存概念很多,而java就是拿东西来用,当然你也可以自己造


        IP属地:河南4楼2019-09-23 16:16
        收起回复
          异常挺方便的,就把它理解为一个预警就行


          IP属地:广东来自Android客户端5楼2019-09-23 16:25
          回复


            IP属地:广东6楼2019-09-23 16:41
            收起回复
              异常是运行时产生的,要和编译产生的error区分开


              IP属地:上海7楼2019-09-23 16:57
              收起回复

                比如这里,编译的时候通过了,运行时出错了,跑了个数据转换异常,就是说运行的时候发现字符串a无法转化成Integer类型


                IP属地:上海8楼2019-09-23 17:06
                收起回复
                  Java的异常机制:这么给你说吧,当你运行一个程序的时候,如果程序只告诉你运行成功了,或者失败了,这样是非常不友好的。例如:如果程序运行成功了,这很好,说明你的程序没问题,但是,如果程序失败了呢?你仅仅知道程序出错了,至于是哪儿错了,这就得完全凭你意淫和猜了。所以Java的异常机制就是,能够在程序运行的时候,将程序的出错信息打印出来,你凭借报错信息,就可以确定错误具体出在哪儿,是什么引发了程序运行的出错。Java的异常处理机制,光是理解的话,如此而已,至于是怎么实现的,现阶段你也没必要去深究。


                  9楼2019-09-23 17:26
                  收起回复
                    异常处理往往跟一个自定义抛出异常,可以增强程序的可执行性,让代码更加灵活,功能更加完善


                    来自iPhone客户端10楼2019-09-23 23:19
                    回复
                      异常就是能终止代码继续往下运行的东西,如果不捕获异常,虚拟机会终止运行,异常被捕获后就可以按catch中的代码继续运行,大概就说:一段代码如果发生了异常,就运行catch里面的代码。以上。


                      IP属地:河南来自Android客户端12楼2019-09-24 08:07
                      回复
                        异常就是我们的高司令都没法解决的bug,留个坑在这里,说不定几百年后会有解决这bug


                        IP属地:江苏13楼2019-09-24 09:07
                        收起回复
                          回复 @依梦🌱 : 你是不是对Java异常机制有什么误解。


                          14楼2019-09-24 09:25
                          回复
                            throw ?不就是个砍了半截的只允许单向传播的 continuation invocation 么。另外一种半残的例子是 return ,相当于拿 I 组合子当参数给 J operator 调用然后再砍成二等残废(没法当作 first-class object )。
                            AOGOL 废柴的后裔终究还是没赶上 1960 年代的设计水准啊。


                            IP属地:北京15楼2019-09-24 11:04
                            回复
                              至于 catch ,无非是对号入座 delimit control ……
                              不过我建议还是熟习一下 libunwind 之类就会深刻体验到实际比起理论多出来的破烂有多 zz 了。
                              ( JVMS 就糊了 athrow 和 exception table ,实际该多恶心还是多恶心。)


                              IP属地:北京16楼2019-09-24 11:15
                              收起回复