zoukankan      html  css  js  c++  java
  • 异常处理

    异常处理

    在程序的编辑和运行期间,会产生人为疏忽或不可避免的程序异常。因此出现了异常处理机制,将java中的异常来封装到一个类中,当遇到错误时,就会抛出异常。异常处理机制提高了程序的可维护性和可阅读性。

    异常处理相当于一个安全护栏,如果马路没有安全护栏,汽车行驶过程中如发生偏离 会直接冲出马路导致更严重的后果。异常处理也是同理,在进行一些程序之外的操作或发生不可控的因素时,能够制止。如果没有进行异常处理,会导致程序直接终止。

    异常处理的关键字:try、catch、finally、throw、throws

    异常处理大致分为两个环节

    1. 抛出异常:使用try关键字生成一个代码块,将代码放入代码块中

    2. 捕获异常:使用catch关键字进行捕获,在catch的括号里输入异常的类型,如果try内的代码出现这个问题,则执行catch代码块中的内容。

     

    package com.exception;

    public class Demo01 {
       public static void main(String[] args) {
     //0不能作为被除数,当a除以b时,会报错。
           int a = 1;
           int b = 0;

           try {//try监控区域
               System.out.println(a/b);//被监控的代码
          }catch (ArithmeticException e){//捕获异常区域
               System.out.println("异常!!");//如果符合这种类型的异常,就输出
          }finally{//作为善后区域,无论有没有异常都会执行。
               System.out.println("finally");
          }
      }
    }

    快捷键 : ctrl + Alt + T 自动打开快捷栏,可以选择if、if()else、for、switch……等,当然也包含try、catch、finally。

    在异常中,可以大体分为错误Error 与 异常Exception两种形态,Error是不可预见的,一般是程序内存栈溢出之类不是程序主观原因导致的运行时错误。 Exception则属于人为因素导致的异常,如编辑代码出现的错误导致异常,或用户未规范操作程序等因素。java中所有的异常是被Throwable涵盖的。一些常见的异常如下:

     

    catch可以重复使用多个,但捕获的异常需要按照异常的大小来排列,由小到大。

    package com.exception;

    public class Demo02 {
       public static void main(String[] args) {
           int a = 1;
           int b = 0;

           try {
               System.out.println(a/b);
          } catch (Error e) {
               System.out.println("Error");
          }catch (Exception e){
               System.out.println("Exception ");//该异常为Exception
          }catch (Throwable t){
               System.out.println("Throwable");
          }finally {
          }
      }
    }

    抛出异常

    抛出异常:将一个异常给到另外一个方法或类里,由另外一个类进行处理。

    所以抛出异常之后,需要再获取异常,这就可以在方法中使用throws抛出异常,然后再在其他地方获取异常进行处理。

    在判断某个方法可能会产生异常,但不想在方法中处理这个异常,就可以将异常抛出。在该方法之外处理这个异常。

    使用throw与throws关键字来在方法中抛出异常

    throw和throws的区别:

    1. throw是用来制造一个异常的,用在方法体中,可以直接在方法体中获取并处理这个异常。 throws用在方法声明的后面,表示将方法中的异常抛出,这样可以在其他地方处理这个方法中的异常。

    2. throw是直接抛出一个异常的实例,无中生有。 throws是声明这个方法可能会出现的异常,以便使用它的调用者知道要捕获这个异常。

    3. throws只是代表一种可能性,可能会出现这种异常。 throw是直接制造出这个异常,所以一定会出现这个异常。

    所以,通常我们使用的都是throws关键字,而throw一般用在自定义异常中。

     

    throw的使用:

    package com.exception;

    public class Demo03 {
       public static void main(String[] args) {
           new Demo03().aa();//使用匿名内部类调用这个类
      }
       public void aa(){
           throw new ArithmeticException();//使用throw关键字抛出一个异常
      }
    }//运行结果为 ArithmeticExceptio异常

     

     

    throws的使用

    package com.exception;

    public class Demo03 {
       public static void main(String[] args) {

           try {//使用try获取
               new Demo03().aa(1,0);//使用匿名内部类调用这个类
          } catch (ArithmeticException e) {//使用catch处理这个异常
               System.out.println("除数不能为0");
          }

      }
       public void aa(int a,int b)throws ArithmeticException{//使用throws声明这个类可能会出现的异常
           System.out.println(a/b);
      }
    }

     

  • 相关阅读:
    0_Simple__simplePrintf
    0_Simple__simplePitchLinearTexture
    0_Simple__simpleP2P
    0_Simple__simpleOccupancy
    0_Simple__MultiGPU
    0_Simple__simpleMultiCopy
    0_Simple__simpleMPI
    0_Simple__simpleLayeredTexture
    0_Simple__simpleCubemapTexture
    0_Simple__simpleCooperativeGroups
  • 原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/14021493.html
Copyright © 2011-2022 走看看