异常:
1.当一个程序本身抛出了异常过后,程序会从程序导致异常的地方跳出来,使用try和catch来实现,当JVM碰到这个语句块的时候,它会监听整个程序,一旦出现了任何异常情况,它会将整个程序的执行权交给catch块来执行.
2.java 里面的异常体系结构分为:
I.Error:表示程序在运行期间出现了十分严重的问题以及不可以恢复的错误,这种情况唯一的办法是中止程序运行.
II.Exception:指在编程过程中可能会遇到的异常的概念,也属于java里面允许出现的例外情况,而Exception本身分为以下两种:
RuntimeException:继承于Exception类,一般称为运行时异常.这种异常在运行时抛出一般情况下不需要进行捕获操作.暗示着程序可能会出现某种错误.是在设计之初无法预知的.
CheckedException:不存在继承 Exception类的说法,称为可检测异常或者捕获异常.是必须被处理的.
3.在catch中说明异常:
catch(Exception ex)
{
ex.printStackTrace();//将此throwable及其追踪输出至标准错误流.
ex.toString();//返回此throwable的简短描述.
ex.getMessage();//返回此 throwable的详细消息字符串.
}
4.特殊异常类AssertionError
抛出该异常指示某个断言失败.
public class AssertionErrorTester
{
public static void main(String args[])
{
try
{
assert args.length < 0:"Args Length Error!";
}
catch(AssertionError e)
{
String message = e.getMessage();
System.out.println("Error Source:" + message);
}
}
}
5.异常的基本语法:
1)try,catch,finally关键字:
public class ExceptionTester
{
public static void main(String[] args)
{
//这一块被成为异常的正常执行块,也就是如果没有异常抛出的话,try块会一直这样正常执行到最后
try
{
//判断输入参数的长度
if(args.length==0)
{
System.out.println("Args length is zore");
}
else
{
String inputString=args[0];
int inputNumber=Integer.parseInteger(inputString);
System.out.println("Input number is:"+inputNumber);
}
}
//这是一块异常处理块,一旦当try代码块抛出了异常的时候,直接从try 块中断,直接进行catch代码块的执行
catch(Exception ex)
{
ex.printStackTrace();
}
//这一块是异常处理块,一旦当try代码块里面抛出了异常的时候,直接从try块中断,直接进行catch代码块的执行
catch(Exception ex)
{
ex.printStackTrace();
}
//finally代码块,不论try中是否抛出异常,也不论catch里面是否真正能够捕捉到异常,finally里面的代码都会执行(有例外)
finally
{
System.out.println("Testing finishing...");
}
}
}
在异常处理里面,catch语句块可以有多个,分别处理不同的异常.
一般情况异常类型的顺序是:从特殊到一般,然后是从子类到父类.