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


猜你喜欢
- Java语言是一种半编译半解释的语言。Java的用户程
- 讲完了inbound事件和outbound事件的传输流程, 这一小节剖析异常事件的传输流程传播异常事件简单的异常处理的场景@Override
- 1、实现原理不同过滤器和 * 底层实现方式大不相同,过滤器 是基于函数回调的, * 则是基于Java的反射机制( * )实现的。1、拦
- 出处:https://www.cnblogs.com/SunSpring作为初学者配置maven一般网上搜索。然后你就看到各种配置文件片段,
- 基础部分内容差不多讲解完了,今天开始进入Java提高篇部分,这部分内容会比之前的内容复杂很多,希望大家做好心理准备,看不懂的部分可以多看两遍
- 目录引言编译环境及说明图片素材分割事件处理OnPaint事件鼠标交互事件代码汇总引言我们有时候会在程序的文件夹里看见一些图标,而这些图标恰好
- 熟悉Android的朋友们都知道,不管是微博客户端还是新闻客户端,都离不开列表组件,可以说列表组件是Android数据展现方面最重要的组件,
- 这周末体验了一下挺火的Docker技术,记录学习笔记。>Docker是干什么的Docker 是一个基于Linux容器(LXC-linu
- 一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或0
- 一.线程不安全多线程的执行环境中,程序的执行结果和预期的结果不符合,这就称为发生了线程不安全现象二.那些情况导致了线程不安全?大致分为以下5
- java文件打包jar运行有效步骤:1.cmd 到当前目录(默认包主类所在目录为例) set classpath = 默认包主类所在目录2.
- 一、概述数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行
- 本文实例为大家分享了Android实现轮播图片效果的具体代码,供大家参考,具体内容如下一、原理首先,将这些要轮播的图片和一些文本分别放置在不
- JPA主键@Id,@IdClass,@Embeddable,@EmbeddedId1、自动主键默认情况下,主键是一个连续的64位数字(lon
- 引言从本篇文章开始,我们将介绍 Java AQS 的实现方式,本文先介绍 AQS 的内部数据是如何组织的,后面的文章中再分别介绍 AQS 的
- 前言static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量
- 入门Springboot项目创建在IDEA中创建即可。注意点:1、所有文件都需要放在 :Application文件的同级或下级目录中2、ap
- 现在很多app的支付、输入密码功能,都已经开始使用自定义数字键盘,不仅更加方便、其效果着实精致。下面带着大家学习下,如何 * 微信的数字键盘,
- 前言目前主流的锁有两种,一种是synchronized,另一种就是ReentrantLock,JDK优化到现在目前为止synchronize
- 启动命令:java -jar weichi-1.0.0.jar将命令打印到1.log上 java -jar weichi-1.0.0.jar