Java异常处理简单实例

Java异常处理

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。

异常发生的原因有很多,通常包含以下几大类:

  • 用户输入了非法数据。
  • 要打开的文件不存在。
  • 网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-

要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

  • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

Java异常体系结构

Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception

Java异常处理简单实例_第1张图片

问题

编程实现输入一个正整数,求该数的阶乘的程序。要求能捕获输入数字格式异常(NumberFormatException),即当输入字符不是正整数时,能出现提示信息“输入数据格式不对,请重新输入一个正整数”。

 

代码

package training8;

import java.util.InputMismatchException;
import java.util.Scanner;

public class MutilTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("请输入一个正整数:");
		Scanner sc=new Scanner(System.in);
		int n=-1;
		long sum=1;
		try {
			n=sc.nextInt();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("输入数据格式不对,请重新输入一个正整数\n");
		}
		//n=sc.nextInt();
		sc.close();
		if(n!=-1)
		{
		for(int i=1;i<=n;i++)
			sum*=i;
		 System.out.printf("%d!=%d",n,sum);
		}
		sc.close();
		}

}

运行结果

Java异常处理简单实例_第2张图片

 

你可能感兴趣的:(Java)