首页 > 编程语言 >Java学习笔记(十三)

Java学习笔记(十三)

时间:2023-05-17 19:55:59浏览次数:38  
标签:Java 错误 十三 抛出 笔记 try finally catch 异常

1. Java异常处理机制

异常的处理机制一:try-catch-finally

格式:

异常的处理机制二:throws

用于方法的声明中,用于向外部抛出异常。

2. 运行时异常与一般异常有何异同?

 

3. 说几个你常见到的异常

ArrayIndexOutOfBoundsException数组索引越界异常

NullPointerException空指针异常

ArithmeticException是计算机编程中的一种异常类型,当算术操作失败或产生错误结果时会抛出此异常。

ClassCastException表示尝试将一个对象强制转换为不兼容的类时发生了错误。

4. 说说final、finally、finalize的区别

final是关键字,用于修饰变量、方法和类,表示它们是不可改变的。

finally是关键字,用于定义一个代码块,在try-catch语句中,无论是否发生异常,finally中的代码都会被执行。

finalize是Object类中的一个方法,它会在垃圾回收器将对象从内存中清除之前被调用,用于进行资源的清理操作。但是,由于finalize()方法的调用时机不确定,不建议过度依赖它来进行资源的清理和释放操作。

5. 如果不使用try-catch,程序出现异常会如何?

程序会抛出异常并终止运行。

6. try ... catch捕捉的是什么异常?

可以用于捕获和处理各种异常。

7. 在try语句中有return语句,最后写finally语句,finally语句中的code会不会执行?何时执行?如果执行是在return前还是后

在Java中,当try块中包含return语句时,finally块中的代码仍然会被执行。finally块中的代码会在try块中的所有代码执行完毕后执行,并且在方法返回之前执行

8. 捕获异常在catch块里一定会进入finally吗?catch里能return吗?catch里return还会进finally吗?在try里return是什么情况?

在Java中,当异常被捕获并处理时,catch块中的代码不一定会进入finally块。如果在catch块中使用了return语句,则finally块中的代码将不会被执行。只有当try块中的代码执行完毕后,finally块中的代码才会被执行,无论是否抛出异常。

9. throw和throws的区别?

Throw抛出的是自定义异常

Throws用于在方法声明中指定可能会抛出的异常类型。

10. 子类重写父类抛出异常的方法,能否抛出比父类更高级别的异常类

在Java中,子类重写父类抛出异常的方法时,可以抛出与父类方法中声明的异常相同的异常类型,也可以抛出该异常的子类异常类型,但不能抛出更高级别的异常类。

11. 如何自定义一个异常?

public class AgeOutOfBoundsException extends  RuntimeException{
          public AgeOutOfBoundsException() {
        
           }
          //String参数接收的异常的信息
            public AgeOutOfBoundsException(String message) {
               super(message);
           }
       }

12. 请描述你对错误(Error)的理解

在Java中,Error是一种严重的程序错误,表示JVM或系统发生了无法恢复的错误。与异常不同,Error通常无法被程序处理或捕获,因为它们表示了一些无法修复的问题,比如系统内存不足、虚拟机错误、线程死锁等。

13. 请描述你对异常(Exception)的理解

在Java中,异常(Exception)是一种事件,它表示程序运行过程中遇到的意外情况或错误。当程序出现异常时,它会打断程序的正常执行流程,并传递错误信息给程序的调用者,以便程序可以适当地处理或恢复。

14. 请描述你对运行时异常(RuntimeException)的理解

运行时异常(RuntimeException)是一种unchecked异常,表示程序在运行时出现了错误或异常情况,通常是由于程序员的错误引起的。与checked异常不同,运行时异常不需要在代码中显式地处理或抛出,程序员可以选择在需要时处理或忽略这些异常。

15. 异常处理方式有几种,分别是什么?详细阐述每种方式对异常是如何处理的

try-catch:try-catch语句用于捕获并处理可能会抛出的异常。在try块中,程序员可以编写可能会抛出异常的代码。在catch块中,程序员可以处理和记录这些异常。如果try块中的代码抛出异常,则程序将跳转到try块下面的catch块,并执行其中的代码。

throws:throws关键字用于在方法声明中指定可能会抛出的异常类型。当方法可能会抛出异常时,必须在方法声明中指定它可能抛出的异常类型。这样,调用该方法的程序就知道该方法可能会抛出哪些异常,并可以适当地处理它们。

16.请列举常见异常,并说明产生原因。

NullPointerException:当程序尝试访问null对象或调用null对象的方法时抛出。通常是由于程序员未正确初始化对象或未正确处理null检查引起的。

ArrayIndexOutOfBoundsException:当程序尝试访问数组中不存在的元素时抛出。通常是由于程序员使用无效的索引访问数组元素或者数组长度错误引起的。

ClassCastException:当程序尝试将一个对象强制转换为不兼容的类型时抛出。通常是由于程序员未正确检查对象类型或者对象类型转换错误引起的。

IllegalArgumentException:当程序传递了无效的参数时抛出。通常是由于程序员未正确检查参数或者参数格式错误引起的。

IOException:当程序尝试进行输入/输出操作时,如果发生错误,则会抛出IOException。通常是由于文件不存在、文件无法读取、网络连接错误等引起的。

ArithmeticException:当程序尝试进行算术运算时,如果发生错误,则会抛出ArithmeticException。通常是由于除数为零或超出数据类型范围引起的。

SQLException:当程序尝试访问数据库时,如果发生错误,则会抛出SQLException。通常是由于数据库连接错误、SQL语句错误、数据库没有准备好等原因引起的。

RuntimeException:RuntimeException是一种非常广泛的异常类型,它包括许多常见的异常,例如:NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException等。通常是由于程序员的错误引起的。

标签:Java,错误,十三,抛出,笔记,try,finally,catch,异常
From: https://www.cnblogs.com/wgh123/p/17409948.html

相关文章

  • 浅谈Java SE、Java EE、Java ME三者的区别
    现在一个个来分析 1.JavaSE(JavaPlatform,StandardEdition)。JavaSE以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。JavaSE包含了支持JavaWeb服务开发的类,并为JavaPlatform,EnterpriseEdition(JavaEE)提供基础。 2.Java......
  • .NET爱上Java的时候
    在目前编程语言繁多的情况,很多编程开发者在选择什么样的语言作为自己谋生的途径而烦恼着。哪种语言或者开发模式,是以后软件开发市场的未来?而当前存在着两大对垒就:微软的.net和sun公司的java。他们各有什么样的优势和劣势?未来的市场会是怎么样?选择谁呢,这事关饭碗可是大事。昨天我看......
  • JVM(一)JVM与Java体系结构
    目录JVM与Java体系结构1前置知识字节码与混合编程虚拟机Java虚拟机JavaVirtualMachineJVM的特点Java虚拟机的作用2JVM的整体结构Java代码的执行流程JVM的架构模型JVM的生命周期虚拟机的种类ClassicVMExactVM☆HotSpotJRockitJ9KVMCDC/CLDCHotSpotAzulVMLiquidVM3内存......
  • 认识Java
    Java的产生和发展产生与发展历程1991年,由Sun公司开发Oak,最初为家用消费电子产品进行编程,是Java前身。1994年,使用Oak语言编写了Web浏览器1995年,改名为Java,96年发布JDK1.1…1998年,发布JDK1.2,从语言发展为平台…2004年,发布JDK1.5现在Java用于:开发大型企业的应......
  • Vue学习笔记-快速入门
    整体代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><divid="app"><inputv-model="username"><!-......
  • JavaScript 使用一个数组对另一个对象数组进行过滤
    JavaScript使用一个数组对另一个对象数组进行过滤假设我们有一个对象数组objs,其中每个对象都有一个name属性,我们希望使用一个数组names对objs数组进行过滤,只保留那些name属性在names数组中的对象。我们可以使用filter()方法来实现这个功能。constobjs=[{id......
  • 刷题笔记:P4452 [差分]
    题目传送门:https://www.luogu.com.cn/problem/P4552一道非常巧妙的差分。我们先来讲一下样例:原数组:1122差分后:1010这时,我们发现,若满足数组中所有数都相等,则必须将差分数组除第一位以外的数都变成0我们怎么用最小的次数将差分数组变成零呢?这个样例不算明显,我们再造一......
  • Java POI 导出 Excel,函数(公式)没有自动更新执行
     问题:设置Excel的公式,根据java更新Excel中变量单元格,输出的Excel公式未生效解决方案:在excel取完值之后,生成excel文件之前重新计算一下(在执行)(重置)函数。//shaun字段取完之后再次执行一下公式workBook.setForceFormulaRecalculation(true); 鸣谢:https://cloud.tencent.c......
  • Java中可以使用Java AWT和Java Swing库来处理图片
    以下是图片增删改查的示例代码:图片的增加importjava.awt.image.BufferedImage;importjava.io.File;importjavax.imageio.ImageIO;publicclassAddImage{publicstaticvoidmain(String[]args){try{BufferedImageimage=ImageIO.read(newFile(......
  • 学习日记——初识JavaScript
    1.JS的组成和基本结构①JavaScript定义:(1)脚本语言(2)有一定的安全性(3)一种基于对象的一种语言(4)可以定义一堆的事件(方法/函数)并进行调用②组成部分: (1)EcmaScript:核心语法。Js前身(2)Dom(文档对象模型)(3)Bom(浏览器对象模型)③JavaScript基本结构<scripttype="text/javascript">alert();......