异常
来源:互联网 发布:幼儿园大班淘宝怎么做 编辑:程序博客网 时间:2024/05/03 23:22
1.Java的异常处理5个关键字:try、catch、finally、throw、throws。
2.try-catch:(1)如果try块中所有语句正常执行完毕,不会发生异常,那么catch块中的所有语句都将会被忽略。
(2)如果try语句块在执行过程中遇到异常,并且这个异常与catch中声明的异常类型相匹配,那么在try块中其余剩下的代码都将被忽略,而相应的catch块会被执行。
(3)如果try语句在执行过程中遇到异常,而抛出的异常在catch里面没有被声明,那么程序立刻退出。
3.try-catch-finally:(1)如果try块中所有语句正常执行完毕,那么finally块就会被执行。
(2)如果try语句块在执行过程中遇到异常,无论这种异常能否被catch块捕获到,都将执行finally块中的代码。
注意:即使在try块和catch块中存在return语句,finally块中语句也会被执行。
发生异常的执行顺序:try-catch-finally-return
4.finally块不被执行的情况:在异常处理代码中执行System.exit(1),将退出Java虚拟机
5.常见的异常类型:Exception-异常层次结构的根类 ArithmeticException-算术错误情形,如以零做除数 ArrayIndexOutOfBoundsException-数组下边越界 NullPointerException-尝试访问null对象成员 ClassNotFoundException-不能加载所需要的类 InputMismatchException-欲得到的数据类型与实际输入的类型相匹配
IllegalArgumentException-方法接到非法参数 ClassCastException-对象强制类型转换出错 NumberFormatException-数字格式转换异常,如把“abc”转换成数字。
6.多重catch块:处理不同异常排列顺序:先子类后父类
7.声明异常throws和抛出异常throw区别:
(1)作用不同:throw用于在程序中抛出异常;throws用于声明在该方法内抛出了异常。
(2)使用位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。
(3)内容不同:throw抛出一个异常对象,而且只能是一个;throws后面跟异常类,而且可以跟多个异常类。
8.异常的分类:(1)Throwable类:所有异常类型都是Throwable类的子类,它派生两个子类,即Error和Exception.
(2)Error类:表示仅靠程序本身无法恢复的严重错误,如内存溢出动态链接失败、虚拟机错误。应用程序不应该抛出这种类型的对象(一般指由虚拟机抛出)。假如出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以在进行程序设计时,应该更关注Exception。
(3)Exception类:由Java应用程序抛出和处理的非严重错误,如所需文件找不到、网络连接不通或中断、算术运算出错(如被零除)、数组下标越界、装载了一个不存在的类、对null对象操作、类型转换异常等。它的各种不同的子类分别对应不同类型的异常。
(4)运行时异常:包括RuntimeException及其子类,不要求程序必须对它作出处理。
(5)Checked异常(非运行时异常):除了运行时异常外的其他由Exception继承来的异常类。程序必须捕获或者声明抛出这种异常,否则会出现编译错误,无法通过编译。处理方式包括两种:通过try-catch在当前位置捕获并处理异常;通过throws声明抛出异常,交给上一级调用方法处理。
8.log4j是一个优秀的日志记录工具,常用使用方式是配置log4j.properties文件,从而控制日志的输出级别、目的地和输出格式。
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- [李景山php]每天laravel[030]-laravel 基础知识 --- blade模版
- 【OpenCV3】图像轮廓查找与绘制——cv::findContours()与cv::drawContours()详解
- post
- C++学习笔记(一)
- 有没有想学机器学习的
- 异常
- eclipse中出现Errors running builder 'JavaScript Validator' on project "xxx"错误
- VS2017代码窗口缩放功能的关闭屏蔽禁用
- 【GanttProject&工作效率提高】适合独立游戏开发者、程序员、策划、白领的工作时间管理工具的教程
- 微信授权登录和分享
- Java 随机匹对PK小组 猜拳
- webView中调用js
- ASP.NET Core MVC 和 Visual Studio入门 (一)安装Visual Studio和.NET Core
- 【通俗理解线性代数】 -- 理解行列式