*
* 程序中的异常 处理:
* 程序中异常 分为:
* 1.严重问题 2.非严重问题
* 同过:Java中捕获代码块处理程序中的 异常;
*
* 异常:超类 (Exception)
* 捕获 操作
方式一:
* try {
//可能出现异常的代码块,运行时异常
} catch (Exception e) {
//对异常信息的处理.....
}finally {
//代码块执行完成后 最终执行的代码;
}
方式二:throws:将异常 通过方法 抛出(方法后面)
方式三:在方法 体中 抛出异常:throw
* 归类:
* Throwable
*
* Error
*
* Exception
*
* 常见异常类型:
* FileNotFoundException
* IndexOutOfBoundsException
* ClassNotFoundException
* NullPointerException
* ArithmeticException 整数中 除数为零异常
* ........
*
* 异常信息获取:
* e.toString();
* e.getMessage();
* e.printStackTrace();
*
*
* 可能出现 异常的方法,一旦出现运行时异常,后续代码不在执行,其他方法 重新调用 该方法或者
* 代码块,运行操作不受影响;
*
*
* 自定义 异常操作:
public class Demo_01 {
//函数入口
public static void main(String[] args) {
//调用 div 除法,创建对象 调用方法
Demo_01 de = new Demo_01();
try {
de.div(15, 2);
de.div(15, 0);
de.div(0, 15);
} catch (Exception e) {
System.out.println("代码块出现异常:"+e.toString());
System.out.println("代码块出现异常:"+e.getMessage());
e.printStackTrace();
}
}
//通过方法 将异常 抛出
/*public void div(double db1,double db2){
double divValue = db1/db2;
System.out.println(db1+"/"+db2+"="+divValue);
}*/
public void div(int db1,int db2) throws ArithmeticException{
//捕获 可能出现 异常的代码
double divValue = db1/db2;
System.out.println(db1+"/"+db2+"="+divValue);
}
//通过方法 将异常 抛出
/*public void div(int db1,int db2){
//捕获 可能出现 异常的代码
try {
double divValue = db1/db2;
System.out.println(db1+"/"+db2+"="+divValue);
} catch (ArithmeticException e) {
System.out.println("代码块出现异常:"+e.toString());
System.out.println("代码块出现异常:"+e.getMessage());
e.printStackTrace();
}
}*/
}
/*
* 自定义异常 类
*/
class MyException extends Exception{
//异常方法 构造方法
public MyException(){
}
public MyException(String excepMessage){
super(excepMessage);
}
}
/**
* 定义 类 在类中写 普通方法 使用自定义 异常 进行处理
*/
class MyOp{
public int myDvi(int num1,int num2) throws MyException{
if(num2==0){
//抛出异常信息
throw new MyException("除数为零异常....");
}
return num1/num2;
}
}