前言
如何使用异常处理错误。
一、什么是异常?
当方法中发生错误,那么此方法创建一个对象并将他交给运行时系统,那么此对象为异常对象。
异常对象包括错误类型,错误发生时程序的状态。
把异常对象交给系统,就称为抛出异常。
异常不是语法错误!!!
二、Throwable
1.Error
致命错误,不能处理,只能避免 ,打个比方:绝症,只能重写程序错误段来解决。
2.Exception
exception:表示编译异常,程序员可以处理且必须处理的,打个比方:感冒,发烧
runtime exception:运行是异常
可以用throws或try...catch方法抛出异常
throws抛出异常交给虚拟机处理,会中断程序。try...catch不会中断异常
三、异常产生过程解析
四、异常处理
Java异常处理5个关键字:catch,try,finally,throw,throws
1.throw
可以用Throw关键字,在指定方法中抛出异常。
使用格式:throw new XXXException(“出现异常的原因”);
2.Throws(抛出异常)
当方法内部抛出异常时,必须处理异常,使用Throws,自己不处理交给调用者,再交给JVM处理,导致终止处理。
使用格式:修饰符 返回值类型 方法名(参数列表)throws AAAexception(){
throw new exception();
}
3.Try...Catch(捕获异常)
格式:Try{可能出现的异常:
}catch(定义异常变量,接受抛出的异常对象){
异常的处理;
}
4.finally
与try一起使用,如果try中的语句必须得实现,那么使用Finally
格式:
Try{可能出现的异常:
}catch(定义异常变量,接受抛出的异常对象){
异常的处理;
}finally{
};
总结
用一个实例来进行总结:
要求:模拟注册注册操作,如果用户名存在,抛出异常并并提示:该用户名已经被注册。
package scanner;
import java.util.Scanner;
public class DemoRegisterException {
static String[] userNames = {"adila", "daliya", "diyar"};//创建用户数组
public static void main (String[]Args) throws Exception {//输入并保存用户名
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String userName = sc.next();
checkName(userName);
}
public static void checkName (String userName) throws Exception {//若用户名存在抛出异常
for (String name : userNames) {
if (name.equals(userName)) {
throw new Exception("失败");
}
}
System.out.println("成功");
}
}