java 异常处理

java 异常处理

 

 

异常处理是面向对象语言区别于面向过程语言的重要标志之一,异常的出现,可以使我们编写的程序变得强大并且安全。

 

ps:面向过程的语言如C语言,就没有异常处理机制)

 

简单地说,异常时处理错误的机制。

 

 

 


1.1 try-catch处理异常

 

trycatch是处理异常的两种方法之一,适合处理程序员可以控制和用户输入有误的情况,以起到程序开发顺利进行和避免不必要情况的发生。

 


import java.util.Scanner;

 

public class TestException {

   public static void main(String[] args) {

       Scanner sc=new Scanner(System.in);

       try{

           int a=sc.nextInt();

           int b=sc.nextInt();

           int c=a%b;

           System.out.println("余数是: "+c);

       }catch(Exception e){

           System.out.println("输入有误");

       }

       System.out.println("程序顺利进行中...");

    }

}

/**

 运行结果:

20

0

输入有误

程序顺利进行中...

 */


 

1.2 throws处理异常

 

throws是处理异常的两种方法之一,它的处理方法是将异常抛给上一级处理,如都不能处理,最终抛给虚拟机处理,这个过程我们成为抛异常。这种方法适合比较严重的异常和程序员无法预料或者无法完全避免异常发生的情况,以及无法处理的异常。

 

 

 


//01.在主函数中捕捉

import java.util.Scanner;

public class TestThrows {

   public static void main(String[] args){

       A aa=new A();

        

       try{

           aa.a();

       }catch(Exception e){

           System.out.println("输入错误");

       }

       System.out.println("程序顺利进行中...");

    }

   

}

 

class A{

   public void a(){

       Scanner sc=new Scanner(System.in);

       int a=sc.nextInt();

       int b=sc.nextInt();

       int c=a%b;

       System.out.println("余数是: "+c);

    }

}

 

 

 

 

 


//02.主函数try catch时也不知道怎么处理,则抛给虚拟机

//抛给虚拟机起码可以保证用户的机器不会死机。让程序正常终止。

import java.util.Scanner;

public class TestThrows {

   public static void main(String[] args)throws Exception{

       A aa=new A();

       aa.a();

       System.out.println("输入错误");

       System.out.println("程序顺利进行中...");

    }

   

}

 

class A{

   public void a()throws Exception{

       Scanner sc=new Scanner(System.in);

       int a=sc.nextInt();

       int b=sc.nextInt();

       int c=a%b;

       System.out.println("余数是: "+c);

    }

}

 

 

 

 

1.3 finally语句

 

 

finally语句是起到异常处理出口的作用,用在trycatch语句的最后,无论是否出现异常(catch中的语句是否被执行)finally中的语句都会被执行,这样可以更好的控制程序的走向。

 

 


//03.finally语句无论如何都会执行

import java.util.Scanner;

public class TestThrows {

   public static void main(String[] args){

       A aa=new A();

       try {

           aa.a();

       } catch (Exception e) {

           System.out.println("输入错误");

       }finally{

           System.out.println("程序顺利进行中...");

       }

    }

   

}

 

class A{

   public void a()throws Exception{

       Scanner sc=new Scanner(System.in);

       int a=sc.nextInt();

       int b=sc.nextInt();

       int c=a%b;

       System.out.println("余数是: "+c);

    }

}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值