/*
异常:程序运行时出现的不正常情况,
异常由来:
问题也是现实生活中的一个具体事物,也可以通过java的类的形式进行描述,并封装成对象,其实 就是java对不正确的情况进行描述后的对象本质。
对于问题的划分:一种是严重问题,一种是非严重问题
对于严重问题:java通过Error进行描述,此类问题一般不编写针对性代码进行处理、
对于非严重问题:java通过Exception进行描述。编写代码进行针对性处理。
Throwable是java中所有异常的父类,命名时,父类作为子类的后半部分名称。
Throwable下分为
Error:
Exception:
2、异常处理:
java中提供特殊语句进行代码处理。
try
{
处理代码块
}
catch(异常类 变量)
{
处理异常的代码;处理方式
}
finaly
{
必须处理部分
}
3、多异常处理:
(1)、声明异常时,建议声明更具体的异常,方便处理。例如:对于除数为0的,throws ArithmeticException//具体的异常,方便处理。
多异常throws ArithmeticException,ArrayIndexOutOfBoundsException,同时要求异常捕捉的时候用两个catch语句进行捕捉。
出现第一个异常,函数就已经跑出,跳出函数,所以只能有一个异常进行显示。如果多个catch块中是继承关系,父类放在最下面,
建议在处理catch异常时,要定义具体的处理方式,而不是展现具体的信息给用户看。具体信息可以写入日志,重新写提示语句。
*/
class Tool
{
int DivTool(int a,int b)
{
try
{
return a/b;
}
catch (Exception ex)
{
System.out.println(ex.getMessage()); //异常原因
System.out.println(ex.getCause());
System.out.println(ex.toString()); //异常名称
ex.printStackTrace(); //异常名称,异常信息,异常出现的额位置,其实jvm默认的处理方式就是这个
return -1;
}
}
int divTool(int a,int b) throws Exception //在功能上声明该功能有可能出现问题。编译的时候对错误进行直接提示,编译报错。
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[] args)
{
Tool tl=new Tool();
int x=tl.DivTool(4,1);
System.out.println(x);
System.out.println("Over");
int y=tl.divTool(4,0); //编译的时候对错误进行直接提示
//ExceptionDemo.java:59: 错误: 未报告的异常错误Exception; 必须对其进行捕获或声明以便抛出
//通过提示,可知有两个方法,一是进行try{}catch{}捕捉,而是进行抛出,还是此阿勇throws进行抛出,写在函数后面。
}
}