Java中的异常和异常的处理

异常的概念

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

异常发生的原因有很多,通常包含以下几大类:
1:用户输入了非法数据。
2:要打开的文件不存在。
3:网络通信时连接中断,或者JVM内存溢出。

异常的类型

处理的流程
在这里插入图片描述

异常的分类和类的结构图
在这里插入图片描述
在这里插入图片描述

异常的处理

捕获异常

import java.util.InputMismatchException;
/**
 * 多重catch块。
*/

/**
 * 使用try-catch-finally进行异常处理。
*/
//finally无论是否发生异常都会执行
public class Test7 {
  public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
      System.out.print("请输入被除数:");
	  	try {
          int num1 = in.nextInt();
          System.out.print("请输入除数:");
          int num2 = in.nextInt();
          System.out.println(String.format("%d / %d = %d", 
                  num1, num2, num1/ num2));
      } catch (InputMismatchException e) {
          System.err.println("被除数和除数必须是整数。");
      } catch (ArithmeticException e) {
          System.err.println("除数不能为零。");
      } catch (Exception e) {
          System.err.println("其他未知异常。");
      } finally {
          System.out.println("感谢使用本程序!");
      }
   }
}

多重异常的执行规则:
1:排列catch 语句的顺序:先子类后父类
2:发生异常时按顺序逐个匹配
3:只执行第一个与异常类型匹配的catch语句

抛出异常 //建议不要使用,最好将异常进行捕获

声明异常
throws:声明方法可能要抛出的各种异常。
如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。

抛出异常
throw:手动抛出异常

实例

public class Person {
	private String name = "";   // 姓名
	private int age = 0;   // 年龄
	private String sex = "男";  // 性别
	public void setSex(String sex) throws Exception {
		if ("男".equals(sex) || "女".equals(sex))
			this.sex = sex;
		else {
			throw new Exception(“性别必须是\"男\"或者\"女\"!");
		}
	}
}
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页