异常的基本概念

            第七章异常的基本概念,只有仅仅简单的两节,但是内容挺多的,需要细细品味,尽量明白弄懂其中的例子以及需要记住的知识点。

        一:什么是异常?

         异常是导致程序中断运行的一种指令流。

        二:异常的处理格式:               

        try{

         //有可能出现异常的语句

          }catch(异常类  异常对象){

          //编写异常处理语句

          }...}

         [finally{

         一定会运行到的程序代码

        }]

         三:异常类的继承结构

         在整个java的异常结构中,实际中有以下的两个最长用的类:Exception和error类,都是Throwable的子类

          Exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理

          Error:一般指的是JVM错误,程序中无法处理

         四:异常的处理机制

          步骤:一旦产生异常,则首先会产生一个异常类的实例化对象

                     在try语句中对此异常对象进行捕捉

                     产生的异常对象与catch语句中的各个异常类型进行匹配。如果匹配成功,则执行catch语句中的代码

public class ExceptionDemo01{
       public static void main(String args[]){
             System.out.println("*****计算开始");
	     int i=0;
	     int j=0;
	     try{
	          String str1=args[0];
		  String str2=args[1];
		  i=Integer.parseInt(str1);
		  j=Integer.parseInt(str2);
		  int temp=i/j;
		  System.out.println("两个数相除的结果"+temp);
		  System.out.println("------------");

	     }catch(Exception e){
	           System.out.println("其他异常"+e);
	     }
	     System.out.println("******计算结果");
       }
}
           五:throw关键字以及throws关键字

            使用throws关键字表示此方法不处理异常,而交给方法的调用处进行处理

            throw可以抛出一个异常。抛出异常类的实例化对象即可。

class Math{
	public int div(int i,int j) throws Exception{	// 定义除法操作,如果有异常,则交给被调用处处理
		int temp = i / j ;	// 计算,但是此处有可能出现异常
		return temp ;
	}
};
public class ThrowsDemo01{
	public static void main(String args[]){
		Math m = new Math() ;		// 实例化Math类对象
		try{
			System.out.println("除法操作:" + m.div(10,2)) ;
		}catch(Exception e){
			e.printStackTrace() ;	// 打印异常
		}
	}
};
           六:自定义异常类: 
 

            只需要继承Exception就可以

             

class MyException extends Exception{//自定义异常类,继承exception类
       public MyExcepttion(String msg){
           super(msg);
       }
 
}
public class DefaultException{
      public static void main(String args[]){
            tyr{
	         throw new MyException("自定义异常";);

	    }catch(Exception e){
	       System.out.println(e);
	    }
      }
}

           七:断言

           

public class Test{
	public static void main(String args[]){
		int x[] = {1,2,3} ;	// 定义数组,长度为3
		assert x.length==0 : "数组长度不为0" ;	// 此处断言数组的长度为0
	}
};
          
          这一章的内容大概就这些,异常的处理是java中不可缺少的机制,所以需要需要反复深入。

猜你喜欢

转载自blog.csdn.net/oncemore520/article/details/52756869