A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hx79481068 中级黑马   /  2019-3-21 15:17  /  817 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.异常的概述:就是一种不正常现象

                2.异常的分类:(记忆)

                         error: 不可抗拒的,比如地震,海啸,非典,艾滋--> (系统偏底层)

                         exception:

                                 1. 编译时期异常

                                                 在编译期间就必须要处理  :   sdf.parse  格式转换编译期异常

                                                         1.自己动手丰衣足食

                                                         2.把这个错误丢给jvm(不建议)   

                                 2. 运行时期

                                                         1.空指针异常

                                                         2.并发修改异常



                3.异常产生的整个流程(理解)

                                 1. 哪个方法内存出了错,jvm 就在对应的地方产生一个异常   

                                 2.该方法中是否已经处理了这个异常   try catch

                                 3.如果没有 ,抛给调用者        调用者也需要去看一看是否处理了这个异常try catch

                                           最终就抛给jvm

                                                         jvm 处理的方案:

                                                                         1. 打印这个错误

                                                                         2. 终止程序的运行



                4. throw(声明抛出异常)  【4,5,6熟练使用】

                                书写在方法内部

                                 throw 一次只能抛出一个异常       

                5.throws(解决异常的方案之一)

                                 方法声明上

                                 一次可以在方法声明上丢出多个异常

                6.try catch   (可以捕获一个,也可以捕获多个异常)

                                 父类的异常只能写在子类异常之后

其他:理解

                注意:异常最好是进行捕获操作,不要将其直接丢给jvm(1.打印 ,2.程序终止)       

                            捕获异常的细节

                                         1.可以抛出父类异常   简写成 throws Exception

                                          2.如果写上以上方式,那么在捕获时,就无法针对某一个具体的异常进行一个具体的处理

                                                        举例:1. 库存不足异常                 2.商品过期异常        

                                          3.针对所有异常,在实际开发过程中,都需要进行捕获,业务异常需要专门单独处理,其他的异常比如空指针,或者角标越界等异常 ,不需要               



                子父类异常的注意事项

                                 1.子类抛出的异常可以和父类 一致

                                 2.子类抛出异常必须是父类的子异常或者异常本身

                                 3.子类可以不抛出异常

                                 4.父类没有异常,子类也不能抛出异常  (如果此时子类有异常,只能try catch 捕获)

                 如何自定义一个异常

                                  1.书写一个类,继承 Exception 或 RuntimeException

                                 实际开发过程中: 寫Exception

                                 2.提供他的有参和无参构造方法,在其内部调用super()

      ### 面试题

                finally ,finalize ,final 三者之间的区别

                         final :

                                  1. final修饰类:类不可被继承

                                  2. final 修饰变量: 不可被修改

                                  3. final 修饰方法: 不可被重写

                        finalize:

                        finally :  一定会被执行的代码

                finally有return  是什么情况       

                                返回的是finally 中的值





多线程:

          并发:同一时间段在交替的执行

          并行:同时(同一时刻)执行

                举例:吃饭

                         一盘菜夹一筷子

                         一口一桌子来一下                         

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马