黑马程序员 异常处理机制的总结
来源:互联网 发布:网络赚钱 软文写作 编辑:程序博客网 时间:2024/05/04 14:06
异常的总结
异常就是 程序中在运行过程中可能会发生的不正常的现象,异常有很多种还有一个继承体系,最上面的是Throwable,最常用的是Exception和他的子类。
异常
1、异常的概念:
①、就是程序在运行过程中,可能会发生的不正常现象异常有很多种,还有一个继承的体系,最上面的是Throwable,最常用的是Exception和它的子类。
②、Error这个分支的异常在程序中不可以捕获和处理。
Error:用于指示合理的应用程序不应该试图捕获的严重问题。这种情况是很大的问题,大到你不能处理了,你不用管它。比如说VirtualMachineError:当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。
③、RuntimeException是可以选择不可以进行捕获和处理
Exception:它指出了合理的应用程序想要捕获的条件。Exception又分为两类:一种是CheckedException,一种是UncheckedException。这两种Exception的区别主要是CheckedException需要用try...catch...显示的捕获,而UncheckedException不需要捕获。通常UncheckedException又叫做RuntimeException。《effective java》指出:对于可恢复的条件使用被检查的异常(CheckedException),对于程序错误(言外之意不可恢复,大错已经酿成)使用运行时异常(RuntimeException)。
注:常见的异常RuntimeExcepiton有IllegalArgumentException、IllegalStateException、NullPointerException、IndexOutOfBoundsException等等。对于那些CheckedException就不胜枚举了,我们在编写程序过程中try...catch...捕捉的异常都是CheckedException。io包中的IOException及其子类,这些都是CheckedException。
常见异常必须记住:
ArithmeticException 算术异常(算术中出现)
ArrayIndexOutofBoundsException 越界异常
NullpointerException 控指针异常
classNotFoundException 包名、类名没有导入jar包
NumberFormatException 数字格式化异常
InputMismatchException 不匹配异常
OutofmemorymatchException 内存溢出
2、处理异常的方法:
①、try—catch—finally
②、throws声明抛出异常
①格式
try{
需要被测试的代码
}
catch(异常类型 变量){
异常处理的代码;
}
finally{
一定要执行的语句
}
Age一:
ackage cn.edu.csdn.net;
class Demo{
int div(int a,int b){
return a/b;
}
}
public class ExceptionDemo {
public static void main(String[] args){
Demo d=new Demo();
try{
int x = d.div(4,1);
System.out.println("x="+x);
}
catch(Exception e){
//System.out.println(e.getMessage()); //打印异常名称
//System.out.println(e.toString()); //打印异常名称、信息
e.printStackTrace();//打印异常名称、信息、异常出现的位置(jvm默认)
}
finally{ //注:finally块至少执行一次
System.out.println("over");
}
}
}
Age二:
package cn.edu.csdn.net;
import java.util.*;
public class Test {
public static void main(String[] args) {
// TODO 自动生成方法存根
try{
Scanner in =new Scanner(System.in);
System.out.print("请输入被除数:");
int num=in.nextInt();
System.out.print("请输入除数: ");
int num2=in.nextInt();
System.out.print(num+"÷"+num2+"="+num/num2);
}
catch(Exception e){
System.out.println("除数不能为零!!");
e.printStackTrace();
}
finally{
System.out.println("感谢使用本程序!");
}
}
}
注:catch中可以有多个,但有顺序(不要定义多余的catch块),如果多个catch的异常出现继承关系,父类异常catch块放在最下面
finally块至少执行一次;
②格式 throws用在方法声明之后,大括号之前
3、Throw和Throws的区别
①、作用上不同
Throw程序员自行产生并抛出的异常
Throws用于声明该方法内抛出异常
②、使用位置不同
Throw位于方法体内部可以作为单独语句使用
Throws必须跟在方法参数列表的后面,不能单独使用
③、内容不同
Throw抛出一个异常对象,且只能是一个
Throws后面跟异常类,且可以跟多个异常类。
总结:(一句话)后面带S说明可以跟多个类型,后面不带S说明他后面只能跟一个对象
- 黑马程序员 异常处理机制的总结
- 黑马程序员_C#的异常处理机制
- 黑马程序员----异常处理机制的概括
- 黑马程序员-异常处理机制
- 黑马程序员---异常处理机制
- 黑马程序员:异常处理总结
- 黑马程序员---异常处理总结
- 黑马程序员——C#程序的异常处理机制
- 黑马程序员_关于java的处理异常机制
- 黑马程序员_浅谈Java当中的异常处理机制
- 黑马程序员:JAVA异常处理机制
- 黑马程序员-面向对象-异常处理机制
- 黑马程序员_Java异常处理机制
- 【黑马程序员】java中的异常处理机制
- 黑马程序员---java异常处理机制
- 黑马程序员--Java异常处理机制
- 黑马程序员—异常处理机制
- 黑马程序员-Java异常处理机制
- Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法
- Java程序员面试中的多线程问题
- select函数详解
- JS声明变量背后的原理
- ExpandableListView 的几个属性
- 黑马程序员 异常处理机制的总结
- 本人博客的主要关注点
- 如何实现九九乘法口诀表的打印
- javascrip数组以及自定义数组方法
- AutoCAD 二次开发学习系列【4】 - 实现CPropertySheet进行用户交互
- linux上安装QT4
- eclipse代码注释的设置
- 结构体
- 弹出菜单TrackPopupMenu与Ctree结合