Java教程

Java异常处理

本文主要是介绍Java异常处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、异常的判断

        1、异常 发生时,若不处理,则无法完成完整程序的运行。

        当用户输入的x 、y (不为零)是数字的时候,那么整个程序是可以正常运行的。但是用户如果输入的不是数字,或者y为零的时候那么程序就会报错,中断运行。这就是其中一种异常。

public static void main(String[] args){

        test();
    }

    private static void test() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数字");
        int x = input.nextInt();
        System.out.println("请再输入一个数字");
        int y = input.nextInt();
        System.out.println(x / y);
    }
}

 

且会提示错误的原因。

二、当异常发生时的处理方法

1、使用 try {

                       // 可能发生异常的程序代码

                        } catch(捕获异常发生的类型){

                          // 采取的措施

                        } finally{

                          //异常程序的统一出口(无论程序是否发生异常。只要非强制中断程序,则必                           然执行)

                        }

注意事项:1.不能单独使用catch。

                  2.catch和finally可以只保留其中一个

import java.util.InputMismatchException;
import java.util.Scanner;
public class Test1 {
	public static void main(String[] args){

	        test();
	        
	    }

    public static int test() {
        try {
            Scanner input = new Scanner(System.in);
            System.out.println("请输入一个数字");
            int x = input.nextInt();
            System.out.println("请再输入一个数字");
            int y = input.nextInt();
            System.out.println(x / y);
            System.out.println("处理完毕");
        }catch(InputMismatchException x){
            System.out.println("必须输入数字啊.");
            return test(); 			//捕捉到异常,要让程序正常运行下去,则重新调用test();
        }catch(ArithmeticException x){
            System.out.println("除数不能为0啊.");
            return test();
        }
        return 0;
    }
}

2、使用throws/throw解决异常

        1、代码在没运行时就显示异常,则用throws声明(即将异常抛出)

              例:定时关机的一个程序。若不将异常抛出则无法运行程序。

 

public class test1 {

	public static void main(String[] args)  {
		Runtime.getRuntime().exec("shutdown -s -t 3600");

	}

}
//上面的程序无法执行,可以将可能发生的异常抛出去

public class test1 {

	public static void main(String[] args)  throws IOException{
		Runtime.getRuntime().exec("shutdown -s -t 3600");

	}

}
//将可能发生的IOException异常抛出

 2、在异常发生的代码后抛出异常。

                抛出一个 RuntimeException异常对象,必须捕获或抛给调用者

 if(age<0 || age>180){
				//设置一个异常  
	            RuntimeException e = new RuntimeException("年龄不合理");
	            throw e;//将异常抛出且声明错误原因是年龄不合理
				
	        }else{
	            this.age = age;
	        }

 

这篇关于Java异常处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!