java内部类与异常类

异常类:

  • 异常:指程序在运行过程发生在正常情况以外的事件。
  • Java语言中定义了很多异常类,每个异常类代表一类运行错误,异常类包含了运行错误的信息(异常数据成员)和处理错误的方法(异常类的成员方法)。
  • Java语言中所有的异常类都是java.lang.Throwable的子类,Throwable类有两个直接子类。
    • (1)Error子类,它包含Java系统或执行环境中发生的异常,这些异常是用户无法捕捉到的异常,例如CPU运行错误、内存溢出等等,如果出现这种错误,Java系统也无能为力,这些异常由虚拟机直接抛出。
    • (2)Exception类,它包含了一般性的异常,如I/O异常、SQL异常等,这些异常是用户可以捕捉到的异常,可以通过产生它的子类来创建自己的异常处理。

image.png
ERROR:相当于程序得了一个无法治愈得毛病。必须修改源代码,程序才能继续执行
Exception:编译期异常,进行编译(写代码)java程序出现问题。

try/catch/finally语句

  • 把可能引发异常的语句封装在 try 语句块中,用以捕获可能发生的异常。catch 后的( )里放匹配的异常类,指明 catch 语句可以处理的异常类型,发生异常时产生异常类的实例化对象。
  • 如果 try 语句块中没有异常发生,那么 try 块正常结束,后面的 catch 语句块被跳过,程序将从 catch 语句块后的第一条语句开始执行。
  • 无论是否发生异常(除特殊情况外),finally 语句块中的代码都会被执行

注意点:

  1. 异常处理语法结构中只有 try 块是必需的,也就是说,如果没有 try 块,则不能有后面的 catch 块和 finally 块;
  2. catch 块和 finally 块都是可选的,但 catch 块和 finally 块至少出现其中之一,也可以同时出现;
  3. 不能只有 try 块,既没有 catch 块,也没有 finally 块;
import java.util.Scanner;

public class Test02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("---------学生信息录入---------------");
        String name = ""; // 获取学生姓名
        int age = 0; // 获取学生年龄
        String sex = ""; // 获取学生性别
        try {
            System.out.println("请输入学生姓名:");
            name = scanner.next();
            System.out.println("请输入学生年龄:");
            age = scanner.nextInt();
            System.out.println("请输入学生性别:");
            sex = scanner.next();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("输入有误!");
        }finally{
        system.out.println("thank you")}
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
    }
}
---------学生信息录入---------------
请输入学生姓名:
徐白
请输入学生年龄:
110a
java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
输入有误!
姓名:徐白
年龄:0
thank you
    at text.text.main(text.java:19)

throw关键字

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值