java——常见报错总结

1. 语法错误 (Syntax Errors)

错误类型: 编译时错误 原因: 代码不符合Java语言的语法规则。

示例 1:
public class Main {public static void main(String[] args) {System.out.println("Hello, World!");// 缺少右大括号
}

错误信息:

error: expected '}' at the end of file

 

解决方案:

确保每个括号成对出现,代码块结束时要有闭合的大括号 }

2. 空指针异常 (NullPointerException)

错误类型: 运行时错误 原因: 访问或操作一个为 null 的对象。

示例 2:
public class Main {public static void main(String[] args) {String str = null;System.out.println(str.length());  // 空指针异常}
}

 错误信息:

Exception in thread "main" java.lang.NullPointerException

解决方案:

在操作对象之前,确保对象已经初始化,并且不为 null

 

3. 数组下标越界 (ArrayIndexOutOfBoundsException)

错误类型: 运行时错误 原因: 访问数组中不存在的元素。

示例 3:
public class Main {public static void main(String[] args) {int[] arr = new int[3];arr[5] = 10;  // 数组下标越界}
}

 错误信息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 3

解决方案:

确保访问数组的下标在有效范围内,避免越界。

 

4. 类型转换异常 (ClassCastException)

错误类型: 运行时错误 原因: 不合法的对象类型转换。

示例 4:
public class Main {public static void main(String[] args) {Object obj = new String("Hello");Integer num = (Integer) obj;  // 类型转换异常}
}

错误信息:

Exception in thread "main" java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Integer

 

解决方案:

确保进行类型转换时,源对象与目标类型是兼容的。

5. 文件未找到异常 (FileNotFoundException)

错误类型: 运行时错误 原因: 尝试访问一个不存在的文件。

示例 5:
import java.io.*;public class Main {public static void main(String[] args) throws IOException {FileReader fr = new FileReader("nonexistent_file.txt");  // 文件未找到}
}

错误信息:

Exception in thread "main" java.io.FileNotFoundException: nonexistent_file.txt (No such file or directory)
 

解决方案:

确保文件路径正确,文件存在,或者使用异常处理来避免程序崩溃。

6. 除以零异常 (ArithmeticException)

错误类型: 运行时错误 原因: 除数为零时,抛出除零异常。

示例 6:
public class Main {public static void main(String[] args) {int result = 10 / 0;  // 除以零异常}
}

 错误信息:

Exception in thread "main" java.lang.ArithmeticException: / by zero
 

 

解决方案:

在除法运算前,确保除数不为零。

7. 非法线程操作异常 (IllegalThreadStateException)

错误类型: 运行时错误 原因: 在线程处于非法状态时尝试对其执行不允许的操作。

示例 7:
public class Main {public static void main(String[] args) {Thread t = new Thread(() -> System.out.println("Hello"));t.start();t.start();  // 重复启动线程}
}

错误信息: 

Exception in thread "main" java.lang.IllegalThreadStateException
 

解决方案:

确保线程没有在已启动的情况下再次启动。

 

8. 方法未定义异常 (NoSuchMethodException)

错误类型: 运行时错误 原因: 尝试调用一个不存在的方法。

示例 8:
public class Main {public static void main(String[] args) throws NoSuchMethodException {Class<?> clazz = Main.class;clazz.getMethod("nonExistentMethod");  // 方法未定义异常}
}

错误信息:

Exception in thread "main" java.lang.NoSuchMethodException: Main.nonExistentMethod()
 

解决方案:

确保调用的方法在目标类中已正确定义。

9. 死锁 (Deadlock)

错误类型: 运行时错误 原因: 两个或多个线程互相等待对方释放资源,从而导致程序无法继续执行。

示例 9:
public class Main {private static final Object lock1 = new Object();private static final Object lock2 = new Object();public static void main(String[] args) {Thread t1 = new Thread(() -> {synchronized (lock1) {System.out.println("Thread 1 holding lock 1...");try { Thread.sleep(100); } catch (InterruptedException e) {}synchronized (lock2) {System.out.println("Thread 1 holding lock 2...");}}});Thread t2 = new Thread(() -> {synchronized (lock2) {System.out.println("Thread 2 holding lock 2...");try { Thread.sleep(100); } catch (InterruptedException e) {}synchronized (lock1) {System.out.println("Thread 2 holding lock 1...");}}});t1.start();t2.start();}
}

 

错误信息: 程序将不会终止,陷入死锁状态。

解决方案:

避免线程间相互等待,采用合适的锁管理策略,如使用 ReentrantLockLocktryLock 方法。

10. 类未找到异常 (ClassNotFoundException)

错误类型: 运行时错误 原因: Java程序在运行时无法找到需要的类。

示例 10:

 

public class Main {public static void main(String[] args) throws ClassNotFoundException {Class.forName("com.example.NonExistentClass");  // 类未找到异常}
}

错误信息:

Exception in thread "main" java.lang.ClassNotFoundException: com.example.NonExistentClass

解决方案:

确保类路径正确,或使用反射时类存在。

 以上是Java编程中一些常见的错误类型及示例。在开发过程中,遇到这些错误时,可以参考错误信息来进行调试和修复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/35181.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

使用Python创建API服务器并打包成exe文件

本文来记录下使用Python创建API服务器并打包成exe文件 文章目录 概述简述API服务器创建打包API服务器为exe文件本文小结 概述 在软件开发中&#xff0c;API服务器是连接前端和后端服务的桥梁&#xff0c;而Python因其丰富的库和框架&#xff0c;如Flask、Django等&#xff0c;成…

MHA切换过程

MHA&#xff08;Master High Availability&#xff09;是一套用于MySQL数据库的高可用性解决方案&#xff0c;它能够在主服务器发生故障时自动将一个从服务器提升为新的主服务器&#xff0c;从而实现数据库服务的持续可用。MHA的切换过程主要包括以下几个步骤&#xff1a; 1. …

NextUI 教程:打造美观高效的React UI

NextUI 教程&#xff1a;打造美观高效的React UI 项目地址:https://gitcode.com/gh_mirrors/ne/nextui 1. 项目介绍 NextUI 是一个轻量级、快速且现代化的React UI库&#xff0c;提供了一系列优雅的组件以帮助开发者构建令人印象深刻的Web应用。它注重性能和用户体验&#x…

Python和Java后端开发技术对比

在当今互联网技术飞速发展的时代&#xff0c;后端开发扮演着至关重要的角色。Python和Java作为两大主流的后端开发语言&#xff0c;各自具备独特的优势和应用场景。让我们深入了解这两种技术的特点和选择建议。 Java后端开发一直是企业级应用的首选方案。它以强大的类型系统、…

Java HashMap

HashMap 是一个散列表&#xff0c;它存储的内容是键值对(key-value)映射。 HashMap 实现了 Map 接口&#xff0c;根据键的 HashCode 值存储数据&#xff0c;具有很快的访问速度&#xff0c;最多允许一条记录的键为 null&#xff0c;不支持线程同步。 HashMap 是无序的&#x…

模型案例:| 帐篷检测模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世&#xff0c;它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力&#xff0c;为人工智能技术的发展开辟了新的可能性。同时&#xff0c;人工智能技术正在进入各种应用领…

实验日志——DETR

DETR训练日志 1. 代码来源 代码源自作者的Github: https://github.com/facebookresearch/detr?tabreadme-ov-file 2. 数据来源 在DETR中只使用了COCO2017数据集&#xff0c;其中训练集有118288张图像&#xff0c;验证集有5001张数据&#xff0c;测试集有40671张数据&#…

18、IO流:

18、IO流&#xff1a; 这一章很枯燥无聊~ 文件&#xff1a; 什么是文件&#xff1a; 文件&#xff0c;对我们并不陌生&#xff0c;文件时保存数据的地方&#xff0c;比如我们经常使用的word文档&#xff0c;txt文档&#xff0c;excel文档…都是文件。它既可以保存一张图片&…

24.两两交换链表中的节点 python

两两交换链表中的节点 题目题目描述示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a;提示&#xff1a;题目链接 题解解题思路python实现代码解读提交结果 题目 题目描述 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须…

解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese

目录 前言 方法一&#xff1a;取消代理设置 方法二&#xff1a;设置系统代理&#xff08;推荐&#xff09; 方法三 方法四&#xff1a;不挂梯子时 前言 在使用 Git/Git小乌龟 进行代码管理的过程中&#xff0c;经常会遇到各种各样的问题&#xff0c;其中之一就是在执行 g…

推荐8款自动化软件测试必备工具

在现代软件测试开发领域&#xff0c;自动化测试工具的使用已经变得至关重要。 这些工具不仅提高了测试效率&#xff0c;还确保了软件质量和稳定性。 本文将向您介绍8款自动化软件测试必备工具&#xff0c;它们涵盖了各个层面的测试需求&#xff0c;从而助力测试团队更好地应对…

MySQL聚合函数查询

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

Vue3 完结

组合式API - setup选项 组合式API可理解为一系列函数&#xff0c;通常需要调用这些函数去编写将来的组件逻辑&#xff1b; 而setup为组合式API的入口&#xff08;只有先写了setup才能往里写组合式API的函数&#xff09; setup选项的写法及执行时机 执行时机在beforeCreate之前…

简洁的移动端登录注册界面

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"content"><view class&quo…

2024NIPS | 在目标引导下利用强化学习范式进行图像冲印调优

文章标题&#xff1a;Goal Conditioned Reinforcement Learning for Photo Finishing Tuning 原文链接&#xff1a;RLPixTuner 本文是上海AI Lab联合香港中文大学&#xff08;薛天帆等人&#xff09;发表在2024NIPS上的论文。 1. Abstract 图像冲印调优旨在自动化对图像冲印管…

【Spring】Cookie与Session

一、Cookie是什么&#xff1f; Cookie的存在主要是为了解决HTTP协议的无状态性问题&#xff0c;即协议本身无法记住用户之前的操作。 “状态” 的含义指的是: 默认情况下 HTTP 协议的客端和服务器之间的这次通信&#xff0c;和下次通信之间没有直接的联系 但是实际开发中&…

【最新】linux安装docker并配置加速源

我这边之前本地创建了个虚拟机&#xff0c;linux系统的&#xff0c;用于部署服务器。有时安装一些常用工具或者中间件&#xff0c;还是用docker安装方便&#xff0c;而且docker还有编排服务等功能&#xff0c;实际使用中还是会省不少事的&#xff0c;这里记录下安装docker的过程…

SpringBoot动态配置Nacos

重要知识点 Nacos属性的简单使用将SpringBoot中的所有配置全部放入到Nacos中开发人创建单独的命名空间,修改互不影响Nacos经常变动的配置抽离到外部文件中 将项目中的所有配置全部放到到 1. 首先引入包 <!-- nacos 接入--><!-- https://mvnrepository.com/artifact…

【每天一篇深度学习论文】轻量化自适应提取模块LAE

目录 论文介绍题目&#xff1a;论文地址&#xff1a; 创新点方法模型总体架构核心模块描述1. 轻量级自适应提取&#xff08;LAE&#xff09;模块&#xff1a;2. 多路径旁路特征匹配&#xff08;MSFM&#xff09;模块&#xff1a;3. RFABlock&#xff08;感受野注意力卷积&#…

Linux中文件操作

文件由文件内容和文件属性构成&#xff0c;因此对文件的操作就是对文件内容或文件属性的操作。所谓的“打开一个文件”就是将文件的属性或内容加载到内存中&#xff0c;而没有被打开的文件存在于磁盘上。打开的文件称作“内存文件”&#xff0c;未被打开的文件称作“磁盘文件”…