我们在编写程序中难免会遇到一些错误,在java中通常有两种报错:异常(Exception)和错误(Error),一般来讲Error的严重性大于Exception。
程序错误共分为三种
1、 编译错误:即不符合java的语法规则。在编译时程序能自己发现错误并能给出错误原因和位置,也是入门时最常遇到的错误。
2、 运行时错误:即在运行过程中出现的错误,常见的错误有类型转换出错、角标越界、算数异常、输入异常等等。
3、 逻辑错误:即程序没有出现意料的结果。这种错误系统通常不会出现报错提示,需要通过分析源码来查错。
抛异常
抛异常是指程序出错后。异常机制提供了程序退出的安全通道。当程序出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。
Throw关键字
一般用于具体的异常对象的抛出。当所写代码不满足指定条件导致无法运行可使用throw抛出异常对象。
public class ExceptionTest {
public static void main(String[] args) {
int a=10;
int b=0;
if(b==0) {
throw new RuntimeException("异常");
}
}
}
try-catch语句
一般用于抛出代码块中的异常
public class ExceptionTest {
public static void main(String[] args) {
try {
int a=10;
int b=a/0;
} catch (Exception e) {
throw new ArithmeticException("算术异常");
}
}
}
Throws关键字
一般用于声明方法可能抛出的异常,其后为异常类,可以有多个,多个类之间用逗号分隔。
public void show() throws Exception{
try {
int a=10/0;
}catch (Exception e) {
// TODO: handle exception
throw new ArithmeticException("算数异常");
}
return;
}
throw与throws的区别:
抛出的东西不同:throw抛出的是具体的异常对象,而throws抛出的是抽象的异常类;
使用位置不同:throw一般用在方法体中,也可用在代码块中,但是如果抛出的是检查时异常类创建的对象,则必须使用try-catch自行处理;throws只能用在方法声明括号后面;