异常处理

简介: 异常处理

异常定义:

       程序在运行时出现不正常情况。

       问题也是现实生活中的一个具体事物,可以通过java类的形式进行描述。并封装成对象。Java对不正常情况进行描述后的对象体现。

       问题划分:严重/非严重。

       严重的:java通过Error类描述。

               Error一般不编写针对性的代码进行处理。

       非严重的:java通过Exception类进行描述。

               对于Exception可以使用针对性的处理方式进行处理。

        常见的异常:数组下标越界、空指针......

        常见的错误:内存溢出OutofmemoryError

       ErrorException都有一些共性内容,抽取出来成为Throwable类。

        Throwable

               |--Error

               |--Exception

                       |--RuntimeException

自定义异常:

       必须是自定义类继承Exception,或者Throwable,或者Error

       原因:异常体系特点:异常类和异常对象都需要被抛出。这个可抛性是Throwable这个体系独有特点。

throwthrows的区别:

       throws使用在函数上,throw使用在函数内。

       throws后面跟的异常类。可以跟多个,用逗号隔开。

       throw后边跟的是异常对象

对多异常的处理:

       1、声明异常时,越具体越好。

       2、多个catch块儿,父类的catch放到最下面。

Exception中特殊的子类异常运行时异常:

       如果在函数内抛出该异常,函数上可以不用声明,编译可以通过。

       如果在函数上声明了该异常。调用者可以不用进行处理,编译可以通过。

       之所以不用在函数声明,是因为不需要让调用者处理。

       当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。

       如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException

异常分两种:

       1、编译时被检测的异常。

       2、编译时不被检测的异常(运行时异常。RuntimeException及其子类)

       编译时被检测的异常是可处理的,需要声明出来,被调用者处理。调用者用try catch去处理。

       编译时不被检测的异常可只声明或只在内部抛出。

       throwreturn都是函数结束标识。它们后边的代码都不能执行。

Finally:

       finally代码块:定义一定执行的代码。通常用于关闭资源,比如数据库连接。

异常的好处:

       1、将问题进行封装。

       2、将正常流程代码和问题处理代码相分离,方便于阅读。

总结:

       异常处理,多多实践。


相关文章
|
JSON 物联网 数据格式
HTTP协议接入物联网平台(Getman模拟)
本文将使用Getman模拟设备模拟HTTP请求,进行接入测试
HTTP协议接入物联网平台(Getman模拟)
|
C++
C++ E0167 “const wchar_t *“ 类型的实参与 “BSTR“ 类型的形参不兼容
C++ E0167 “const wchar_t *“ 类型的实参与 “BSTR“ 类型的形参不兼容
220 0
|
JavaScript Java 关系型数据库
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)(1)
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)
300 1
|
机器学习/深度学习 人工智能 算法
|
Python
Python中matplotlib.pyplot柱状图条形图上下或左右边距调整
Python中matplotlib.pyplot柱状图条形图上下或左右边距调整
188 1
|
Windows
(查看,和保存)windows下通过cmd命令符窗口查看、保存文件目录结构
(查看,和保存)windows下通过cmd命令符窗口查看、保存文件目录结构
542 0
|
JavaScript 前端开发
VUE拖拽文件碰撞检测draggable
VUE拖拽文件碰撞检测draggable
|
算法 Java Linux
注意!不看太后悔了!未来工作中如何多人协作?让我用git给你演示!
目前,我们的仓库中只有一个 master 主分支,但在实际的项目开发中,在任何情况下其实都是不允许直接在 master 分支上修改代码的,这是为了保证主分支的稳定。这时推送失败,因为你的小伙伴的最新提交和你推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用 git pull 把最新的提交从origin/dev 抓下来,然后,在本地进行合并,并解决冲。要说明的是,我们切换到的是本地的 dev 分支,根据示例中的操作,会将本地分支和远程分支的进行关系链接。冲突,就使用我们之前讲的冲突处理解决掉冲突。
289 0
|
监控 Linux 定位技术
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十八)串口编程(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十八)串口编程
507 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十八)串口编程(下)
|
机器学习/深度学习 传感器 开发框架
【TSP问题】基于遗传算法求解固定的开放式不返回多旅行推销员问题(M-TSP)附matlab代码
【TSP问题】基于遗传算法求解固定的开放式不返回多旅行推销员问题(M-TSP)附matlab代码