Java深入讲解异常处理try catch的使用
作者:Demo龙 发布时间:2023-11-04 13:00:32
标签:Java,try,catch,异常处理
1.try-catch异常处理说明
Java提供try和catch块来处理异常,try块用于包含可能出错的代码。catch块用于处理try块中发出的异常。可以根据需要在程序中有一个或多个try-catch块
基本语法
try{
//可疑代码
//将一场生成对应的异常对象,传递给catch块
}catch{
//对异常的处理
}
2.try-catch异常处理细节
1.如果异常发生了,则异常后面的代码不会执行,直接进入到catch块
2.如果异常没有发生,则顺序执行try的代码块,不会进入到catch。
3.如果希望不管是否发生异常,都执行某段代码,则使用如下代码-finally{}
示例01
package com.demo.trycatch;
/**
* @version 1.0
* @auther Demo龙
*/
public class TrycatchDetial {
public static void main(String[] args) {
//1.如果异常发生了,则异常后面的代码不会执行,直接进入到catch块
//ctrl+alt+t
try {
String ch="kkk";
int a=Integer.parseInt(ch);
System.out.println("number"+a);
} catch (NumberFormatException e) {
System.out.println("异常信息:"+e.getMessage());
}
System.out.println("程序继续运行");
// > 2.如果异常没有发生,则顺序执行try的代码块,不会进入到catch。
try {
String ch="556";
int a=Integer.parseInt(ch);
System.out.println("number="+a);
} catch (NumberFormatException e) {
System.out.println("异常信息:"+e.getMessage());
}
System.out.println("程序继续运行02");
//> 3.如果希望不管是否发生异常,都执行某段代码,则使用如下代码-finally{}
try {
String ch="Demo龙";
int a=Integer.parseInt(ch);
System.out.println("number="+a);
} catch (NumberFormatException e) {
System.out.println("异常信息:"+e.getMessage());
} finally {
System.out.println("finally被执行");
}
}
}
测试结果01
4.可以有多个catch语句,捕获不同的异常(进行不同的业务处理),要求父类异常在后,子类异常在前,如果发生异常,只会匹配一个catch。
5.try-finally配合使用,这种用法相当于没有捕获异常,程序会直接退出,但会执行finally业务逻辑
示例02
package com.demo.trycatch;
/**
* @version 1.0
* @auther Demo龙
*/
public class TrycatchDetial02 {
//4.可以有多个catch语句,捕获不同的异常(进行不同的业务处理),
// 要求父类异常在后,子类异常在前,如果发生异常,只会匹配一个catch。
public static void main(String[] args) {
try {
Person person = new Person();
person=null;
System.out.println("name="+person.getName());//空指针异常
int n1=9;
int n2=0;
int num=n1/n2;//数学异常
//1.try代码块可能有多个异常
//2.可以使用多个catch分别捕获不同的异常,相应处理
//3.要求子类异常写在前面,父类异常写在后面
}catch (NullPointerException e){
System.out.println("空指针异常:"+e.getMessage());
} catch (ArithmeticException c){
System.out.println("算数异常:"+c.getMessage());
} catch (Exception e) {
System.out.println("异常情况:"+e.getMessage());
} finally {
System.out.println("finally代码块被执行");
}
System.out.println("程序继续运行。");
//5.try-finally配合使用,这种用法相当于没有捕获异常,
// 程序会直接退出,但会执行finally业务逻辑
System.out.println("try-finally细节测试");
try {
int m1=9;
int m2=3;
System.out.println("m1/m2="+m1/m2);
} finally {
System.out.println("执行finally代码块02");
}
try {
int m1=9;
int m2=0;
System.out.println("m1/m2="+m1/m2);
} finally {
System.out.println("执行finally代码块01");
}
}
}
class Person{
private String name="demo龙";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
测试结果02
来源:https://zal321.blog.csdn.net/article/details/125011256
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 为什么要写这篇文章经过了若干年的发展,Java逐步从java8升级为java11,java17。让我们对比学习一下最新一版的LTS版本和ja
- 开发项目的时候,表很多,是不可能一点点的自己去写xml ,dao文件的,这里就需要用到代码的自动生成工具了。第一步:导入jar包,当然,这之
- 一、需求场景有时候我们需要在项目中使用一些静态资源文件,比如城市信息文件 countries.xml,在项目启动后读取其中的数据并初始化写进
- 一.关于使用Mybatisplus自带的selectById和insert方法时的一些问题1.selectById的问题(1).表的主键列名
- 因为涉及到 io 流输入问题,如果不关闭会一直占用资源。所以使用过后要及时关闭,防止资源一直被占用。Scanner在使用前要导入 java.
- ContentProvider是内容提供者,可以跨进程提供数据。大家都知道,ContentProvider的启动,是在Application
- 本文主要介绍的是通过使用java的相关类可以实现对文件或文件夹的压缩。zlib是一种数据压缩程序库,它的设计目标是处理单纯的数据(而不管数据
- 背景最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些,用户经常需要上传好几个G的资料文件,如图纸,视频等,并且需要在上
- 编码&解码 通过下图我们可以了解在javaWeb中有哪些地方有转码:用户想服务器发送一个HTTP请求,需要编码的地方有ur
- 讲这个例子前,咱们先来看一个简单的程序:字符串数组实现数字转字母:#include <stdio.h>#include <
- 本文实例讲述了Android之复选框对话框用法。分享给大家供大家参考。具体如下:main.xml布局文件<?xml version=&
- 正则表达式是一种描述词素的重要表示方法。虽然正则表达式并不能表达出所有可能的模式(例如“由等数量的 a 和 b 组成的字符串”),但是它可以
- 在分支较多的时候,switch的效率比if高,在反汇编中我们即可看到效率高的原因一、switch语句1、在正向编码时,switch语句可以看
- Struts2是流行和成熟的基于MVC设计模式的Web应用程序框架。 Struts2不只是Struts1下一个版本,它是一个完全重写的Str
- Java Function的使用一、方法介绍表示接受一个参数并产生结果的函数。参数类型 T - 函数输入的类型R - 函数的结果类型方法介绍
- 1、什么是 ThreadLocal:ThreadLocal,即线程本地变量,如果你创建了一个变量,那么访问这个变量的每个线程都会有这个变量的
- 刚开始我以为熔断和降级是一体的,以为他们必须配合使用; 只不过名字不一样而已,但是当我经过思考过后,发现他们其实不是一个东西;降级什么是服务
- 官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-a
- 简介optional类是java8中引入的针对NPE问题的一种优美处理方式,源码作者也希望以此替代null。历史1965年,英国一位名为To
- 前言对于 InterruptedException,一种常见的处理方式是 “生吞(swallow)” 它 —— 捕捉它,然后什么也不做(或者