首页 > 其他分享 >异常的处理

异常的处理

时间:2024-08-05 22:08:53浏览次数:5  
标签:处理 抛出 代码 关键字 finally 异常 throws

异常的处理只有两种方式

  • 抛出异常
  • 捕获异常

抛出异常

什么是抛出异常?

目前为止任何异常,默认的处理方式都是抛出

所谓抛出异常就是直接将错误信息打印到控制台

怎么声明抛出异常?

如果是运行时异常,不用处理,默认就会自动抛出

如果是编译期异常,想要抛出异常,语法是

位置: 在方法参数列表后,{}前

写: throws 异常类名,类名2,...

public static void main(String[] args) 
        throws ArithmeticException,ArrayIndexOutOfBoundsException {
        

}
声明抛出异常后,什么效果?

如果代码一切正常,虽然声明的有抛出异常,也不会在控制台打印异常信息

如果代码真的有异常,声明了抛出异常,

1错误信息就会在控制台打印

2抛出异常后,后续代码不再执行

throws/throw 关键字

在Java中, throwthrows 关键字是用于处理异常的。

throw 关键字用于在代码中抛出异常,而 throws 关键字用于在方法声明中指定可能会抛出的异常类型。

throw 关键字

throw 关键字用于在当前方法中抛出一个异常。

通常情况下,当代码执行到某个条件下无法继续正常执行时,可以使用 throw 关键字抛出异常,以告知调用者当前代码的执行状态。

例如,下面的代码中,在方法中判断 num 是否小于 0,如果是,则抛出一个 IllegalArgumentException 异常。

实例

public void checkNumber(int num) {
 if (num < 0) {
  throw new IllegalArgumentException("Number must be positive");
 }
}

throws 关键字

throws 关键字用于在方法声明中指定该方法可能抛出的异常。当方法内部抛出指定类型的异常时,该异常会被传递给调用该方法的代码,并在该代码中处理异常。

例如,下面的代码中,当 readFile 方法内部发生 IOException 异常时,会将该异常传递给调用该方法的代码。在调用该方法的代码中,必须捕获或声明处理 IOException 异常。

实例

public void readFile(String filePath) throws IOException {
 BufferedReader reader = new BufferedReader(new FileReader(filePath));
 String line = reader.readLine();
 while (line != null) {
  System.out.println(line);
  line = reader.readLine();
 }
 reader.close();
}

一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。

例如,下面的方法声明抛出 RemoteException 和

InsufficientFundsException:

import java.io.*; public class className {   public void withdraw(double amount) throws RemoteException,                              InsufficientFundsException   {       // Method implementation   }   //Remainder of class definition

}

finally关键字

finally 关键字用来创建在 try 代码块后面执行的代码块。

无论是否发生异常,finally 代码块中的代码总会被执行。

在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。

finally 代码块出现在 catch 代码块最后,语法如下:

try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }finally{ // 程序代码 }

实例

ExcepTest.java 文件代码:

public class ExcepTest{ 
public static void main(String args[]){
int a[] = new int[2];  
try{     
System.out.println("Access element three :" + a[3]);   
}catch(ArrayIndexOutOfBoundsException e){       System.out.println("Exception thrown  :" + e); 
}  
finally{   
a[0] = 6;    
System.out.println("First element value: " +a[0]);       System.out.println("The finally statement is executed");   
}
}
}

以上实例编译运行结果如下:

Exception thrown  :java.lang.ArrayIndexOutOfBoundsException: 3
First element value: 6
The finally statement is executed

标签:处理,抛出,代码,关键字,finally,异常,throws
From: https://www.cnblogs.com/clswhde/p/18344129

相关文章

  • 【RISC-V设计-05】- RISC-V处理器设计K0A之GPR
    【RISC-V设计-05】-RISC-V处理器设计K0A之GPR1.简介通用寄存器(GeneralPurposeRegister)是处理器设计中的重要组成部分,在数据处理和指令执行过程中发挥着关键作用,对于计算机系统的整体性能和效率有着至关重要的影响。通用寄存器用于传送和暂存数据,也可参与算术逻辑运算,并......
  • Python异常处理机制
    编程错误编写程序时遇到的错误可大致分为2类,分别为语法错误和运行时错误。语法错误语法错误,也就是解析代码时出现的错误。当代码不符合Python语法规则时,Python解释器在解析时就会报出SyntaxError语法错误,与此同时还会明确指出最早探测到错误的语句。例如:print"Hello,World!......
  • Android Camera close异常导致app的input ANR案例分析
    1.背景在日常的项目开发过程中,经常会收到用户或者测试同仁报过来的ANR(ApplicationNotResponse)的问题,本文结合作者的日常工作中遇到的典型案例,分享ANR的分析过程。ANR(‌ApplicationNotResponding)‌主要分为以下几种类型:‌Inputdispatchingtimedout:‌当输入事件(......
  • 数组:性能优化与错误处理的艺术
    引言在编程过程中,我们会发现这么一件事,有时候需要用到很多变量,十个、百个,甚至千个,如果一个个变量都去声明的话,那么工作量是非常大的,也导致代码很臃肿,所以这个时候数组就出现了。数组可以用来存储一系列数据类型一致的数据,这让我们在操作数据的时候会来的更加简易高效,接下来......
  • 无法加入进程,只能终止[Python 3.11,多处理]
    我有一个问题要问对Python的多处理库有更​​多经验的人,此时我几乎迷失了方向。我目前正在构建一个应该在Windows11和Windows11上运行的图像处理应用程序装有DebianLinux的OrangePi5。我的设置是,除了主程序之外,还有另外两个进程,一个用于处理不间断的......
  • 异常
    异常1.什么是异常1.1异常的概念在Java中,异常(Exception)是指程序执行过程中可能出现的不正常情况或错误。它是一个事件,它会干扰程序的正常执行流程,并可能导致程序出现错误或崩溃。异常在Java中是以对象的形式表示的,这些对象是从java.lang.Throwable类或其子类派生而来。Throwa......
  • 自定义异常
    自定义异常目录自定义异常分类检查性异常类:自定义异常类继承于Exception。运行时异常类:自定义异常类继承于RuntimeException自定义检查性异常类(MyException)自定义运行时异常类(MyRuntimeException)自定义异常的使用实例分类检查性异常类:自定义异常类继承于Exception。运行时......
  • Exception异常
    Exception异常目录Exception异常运行时异常和非运行时异常Java常见异常是程序本身可以处理的异常。Exception类有一个重要的子类RuntimeException。RuntimeException类及其子类表示“JVM常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运......
  • 异常类型结构图
    异常类型结构图目录异常类型结构图异常类型结构图Error和Exception的区别Error和Exception的联系Error和Exception的区别异常类型结构图Error和Exception的区别Error和Exception的联系继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。Error......
  • C# 使用Flurl http请求处理流式响应
    AI对话接口采用流式返回,使用Flurl处理返回的数据流usingFlurl;usingFlurl.Http;[HttpPost]publicasyncTask<string>GetLiushiChatLaw(){//1、请求参数,根据实际情况YourModelrequest=newYourModel();stringallStr="";stringchatLawApiUrl="ht......