一、认识异常
java 中的异常大致分为三类:编译错误、逻辑错误、运行异常。其中编译错误和逻辑错误通常手动更改即可,运行异常是异常处理的主要内容。
java 中的异常全部继承自 Exception 类,其常见的子类如下:
查看异常,例如:
二、异常处理
异常处理分为捕获异常和抛出异常,捕获异常是自己解决,抛出异常是交给调用者解决。
(一)捕获异常
捕获异常通过 try{……} catch() {……} finally{……} 模式解决,try 里面填写可能出现异常的代码;catch 括号里声明异常类型,代码块里写处理方式;finally 里面填写不论是否出现异常都要执行的代码(可选)。
例如:
public static void main(String[] args)
{
int[] intarr= {0,0,1};
try
{
System.out.println(intarr[3]); //显然下标已经越界
}
catch(Exception e) //声明异常对象 e
{
e.printStackTrace(); //调用.printStackTrace()方法,打印异常内容
}
finally
{
System.out.println("代码执行完毕");
}
}
(二)抛出异常
抛出异常通过 throws 关键字实现,在方法参数括号后加 throws 异常类型 即可,这种方法并没有将异常解决,其他人在调用方法时需要对异常再次处理。
public static void main(String[] args) throws Exception
{
方法体;
}
三、自定义异常
自定义异常通过关键字 throw 实现,首先声明一个异常:
Exception e=new Exception("异常信息提示");
而后在需要抛出异常的位置,throw e 即可。
public static void main(String[] args) throws Exception
{
Exception e=new Exception("长度不对"); //自定义异常
Scanner input=new Scanner(System.in);
String x=input.next();
if(x.length()!=3)
{
throw e; //抛出异常
}
}
如果输入的字符串长度不等于 3,就抛出异常,异常信息为:长度不对。