异常:异常就是是导致程序中断运行的一种指令流。如果不对异常进行正常处理,则可能导致程序的中断执行,造成不必要的损失。
代码如下:
class Exc{ //创建一个类
int i=10; //定义一个整型变量并初始化
}
public class ExceptionDemo01 { //创建一个类
public static void main(String[] args) { //主方法
int a=10; //定义一个整型变量并初始化
int b=0; //定义一个整型变量并初始化
int temp=a/b; //计算两个变量的商
System.out.println(temp);//输出结果
}
}
运行结果为:
处理异常:
1.异常格式
try{ //捕捉异常
异常语句
}
catch(Exception e){ //处理异常
}
finally{ //会执行的语句
一定会执行的代码
}
class Exc{ //创建一个类
int i=10; //定义一个整型变量并初始化
}
public class ExceptionDemo01 { //创建一个类
public static void main(String[] args) { //主方法
int a=10; //定义一个整型变量并初始化
int b=0; //定义一个整型变量并初始化
int temp=0; //定义一个整型变量并初始化
try{ temp=a/b; //计算两个变量的商
}
catch(ArithmeticException e)
{ //处理异常
System.out.println(e); //输出异常信息
}
System.out.println(temp);//输出结果
}
运行结果为:
class Exc{//创建一个类
int a=10;//定义一个整型变量并初始化
int b=10;//定义一个整型变量并初始化
}
public class ExceptionDemo01 {//创建一个类
public static void main(String[] args) {//主方法
int temp=0;//定义一个整型变量并初始化
Exc e=null;//创建对象
//e=new Exc();//实例化对象
try{//捕捉异常
temp=e.a/e.b;//计算商
System.out.println(temp);//输出结果
}catch(NullPointerException e2){//处理异常
System.out.println("空指针异常:"+e2);//输出异常信息
}catch(ArithmeticException e2){//处理异常
System.out.println("算数异常:"+e2);//输出异常信息
}
finally{//最后一定会执行的代码
System.out.println("程序推出");//输出信息
}
}
}
运行结果为:
1.常见异常:
有以下四种:
1.数组越界异常:ArrayIndexOutOfBoundsException
2.数字格式化异常:NumberFormatException
3.算数异常:ArithmeticException
4.空指针异常:NullPointerExceptio
2.throws关键字
1.在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,抛给方法的调用者处理
2.格式为:
public void tell() throws Exception{ }
代码如下:
public class ExceptionDemo02 {//创建类
public static void main(String[] args) {//主方法
tell(10,0);//调用方法并传入值
}
public static void tell(int i,int j)throws ArithmeticException{//创建类并抛出算数异常
int temp=0;//定义一个整型变量并初始化
temp=i/j;//计算商
System.out.println(temp);//输出信息
}
}
运行结果为:
public class ExceptionDemo02 {//创建类
public static void main(String[] args) {//主方法
try{//捕捉异常
tell(10,0);//调用方法并传入值
}catch(Exception e){//处理异常
System.out.println(e);//输出异常信息
}
}
public static void tell(int i,int j)throws ArithmeticException{//创建类并抛出算数异常
int temp=0;//定义一个整型变量并初始化
temp=i/j;//计算商
System.out.println(temp);//输出信息
}
}
运行结果为:
public class ExceptionDemo02 {//创建类
public static void main(String[] args)throws Exception {//主方法并抛出异常
tell(10,0);//调用方法并传入值
}
public static void tell(int i,int j)throws ArithmeticException{//创建类并抛出算数异常
int temp=0;//定义一个整型变量并初始化
temp=i/j;//计算商
System.out.println(temp);//输出信息
}
}
运行结果为:
关键字:throw
1.throw关键字抛出一个异常,抛出的时候直接抛出异常类的实例化对象即可。
public class ExceptionDemo03 {//创建类
public static void main(String[] args) {//主方法
try{//捕捉异常
throw new Exception("实例化异常对象");//利用throw关键字直接抛出异常实例化对象
}catch(Exception e){//处理异常
System.out.println(e);//输出异常信息
}
}
}
运行结果为:
自定义异常:
1.自定义异常直接继承Exception就可以完成自定义异常类。
代码如下:
class MyException extends Exception{//创建自定义异常类并继承父类
public MyException(String msg){//定义方法并传入一个字符串参数
super(msg);//调用父类构造方法
}
}
public class ExceptionDemo04 {//创建类
public static void main(String[] args) {//主方法
try{//捕捉异常
throw new MyException("自定义异常");//直接抛出自定义异常实例化对象
}catch(MyException e){//处理异常
System.out.println(e);//输出异常信息
}
}
}
运行结果为: