接口和异常

接口

interface 接口

特性:

  • 接口不能被实例化;
  • 实现类必须实现接口的所有方法;
  • 实现类可以实现多个接口;
  • 接口没有构造方法。
  • implements Axxx,Bxxx多个接口使用,隔开
  • 接口中的变量都是静态常量。
  • 接口的成员变量默认修饰符为:public static final 。接口中的变量都是常量。
  • 接口中的方法都是抽象方法,默认修饰符为:public abstract。
  • 接口是给类实现用的,非抽象类事项一个接口的时候,必须要把接口中的方法全部实现。

接口是一种能力。一种服务,一种功能。 添加功能好用。

异常

变量名.hasNextInt();
判断输入是否为整数。

System.exit(1); // 非0异常关闭 0正常关闭
结束JVM虚拟机。

System.err.println() // 红色输出,用于报错

异常处理机制

异常是指程序运行中发生不正常的事件,JVM会中断正在运行的程序。
Java异常处理的5个关键字:try,catch,finally,throw,throws

捕获异常:
try执行可能产生异常的代码;

catch捕获异常;
finally无论是否发生异常,代码总能执行;

声明异常:
throws声明方法可能要抛出的各种异常;

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

Java中所有的异常都是Exception(父类)
除数为0的异常, ArithmeticException(子类)
输入的格式不正确, InputMismathException(子类)

	try {
			int num1 = input.nextInt();
			System.out.println("请输入除数:");
			int num2 = input.nextInt();
			System.out.println(num1+ "/" +num2 +"="+ (num1/num2));
		}catch(Exception e) { // 全异常抓捕
			System.err.println("出现了错误操作!");
			e.printStackTrace();// 打印异常堆栈信息
        	e.getMessage(); // 打印异常的字符串提示
		}

catch(这里可以写Exception 或者Exception的子类)

try-catch代码执行流程:

  1. 无异常。try-》catch后面的代码
  2. 有异常。而且恰好和catch后面的异常类型匹配:try–》catch里面的代码–》catch后面的代码
  3. 有异常。但是和catch后面的异常类型不匹配:try–》中断

查错从下往上,找错从上往下。

try-catch-finally

finally唯一不执行的情况 System.exit(1);

try或catch代码块中加return;finally代码块中的语句还会执行。

多重catch块

两个块可以出现多个同名变量。

  • 先子类后父类;
  • 发生异常时顺序逐个匹配
  • 只执行第一个与异常类型匹配的catch语句

try必须出现catch和finally两者至少出现一个。

声明异常

throw声明某个方法可能抛出的各种异常,多个异常用逗号隔开.

Exception是一个类;

throw与throws:

throwthrows
生成并抛出异常声明方法内跑出了异常
位于方法体内部,可作为单独语句使用必须跟在方法参数列表后面,不能单独使用
抛出一个一场对象,且只能是一个声明抛出异常类型,可以跟多个

异常体系结构

Object-throwable-error,Exception-检查异常,运行时异常
在这里插入图片描述

自定义异常

异常更具体,更有针对性

异常链 JDK1.4版本出现。

异常处理原则

异常处理与性能

异常只能用于非正常情况

不要将过于庞大的代码块放在try中

在catch中指定具体的异常类型

需要对捕获的异常做处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值