Java基础 9.5

1.异常处理

基本介绍

异常处理就是当异常发生的时候 对异常处理的方式

异常处理方式

try-catch-finally

程序员在代码中捕获发生的异常 自行处理

throws

将发生的异常抛出 交给调用者(方法)处理 最顶级的处理者是JVM

示意图

2.try-catch方式处理异常说明

Java提供try和catch块来处理异常 try块用于包含可能出错的代码 catch块用于处理try块中发生的异常 可以根据需要在程序中有多个try catch块

基本语法

try {
    可疑代码
    将异常生成对应的异常对象 传递给catch块
} catch (异常) {
    对异常处理
}
//如果没有finally 语法可以通过

注意事项

如果异常发生 则异常发生后面的代码不会执行 直接进入到catch块

如果异常没有发生顺序执行try代码块 不会进入到catch

如果希望不管是否发生异常 都执行某段代码(比如关闭连接 释放资源等)则使用finally{}

可以有多个catch语句 捕获不同的异常(进行不同的业务处理)要求父类异常在后 子类异常在前 比如(Exception在后 NullPointerException在前)如果发生异常 只会匹配一个catch

可以进行try-finally配合使用 这种做法相当于没有捕获异常 因此程序会崩掉 应用场景:执行一段代码 不管是否发生异常必须执行某个业务逻辑

3.小结

如果没有出现异常,则执行try块中所有语句,不执行catch块中语句,如果有finally,最后还需要执行finally里面的语句

如果出现异常,则try块中异常发生后,try块剩下的语句不再执行。将执行catch块中的语句,如果有finally,最后还需要执行finally里面的语句

4.练习

package com.logic.try_;

import java.util.Scanner;

/**
 * @author logic
 * @version 1.0
 */
//如果用户输入的不是一个整数,就提示他反复输入,直到输入一个整数为止
public class Homework01 {
    public static void main(String[] args) {
        /*
        1.创建Scanner对象
        2.使用无限循环 去接收一个数
        3.将该输入的值 转成一个int
        4.如果在转换时 抛出异常 说明输入的内容不是一个可以转成int的内容
        5.如果没有抛出异常 break 
        */
        Scanner scanner = new Scanner(System.in);
        int n1 = 0;
        String inputStr = "";
        while (true) {
            System.out.print("请输入一个整数: ");
            inputStr = scanner.next();
            System.out.println("输入完毕...");
            try {
                n1 = Integer.parseInt(inputStr);
                break;
            } catch (NumberFormatException e) {
                System.out.println("输入有误...");
            }
        }
        System.out.println("你输入的值是: " + n1);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值