Java编程中常见的错误有哪些

如题所述

相信作为程序员的我们在对程序进行编译过程中经常会遇到错误,或者在运行过程中出现错误,在这里主要跟大家谈谈经常遇到的一些异常与错误,以及解决办法。

 

异常是指程序在编译或运行过程出现的错误。

在java.lang包中Throwable包含了所有的异常。

Error (错误) 和Exception(异常)

(1)Error(错误)

一旦发生无法修复,但可以避免发生。

常见错误类:

IOError:I/O错误,当发生严重的I/O错误时,抛出此错误。
VirtualMachineError :虚拟机错误,当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。

StackOverflowError:栈内存满了,当应用程序递归太深而发生堆栈溢出时,抛出该错误。

OutofMemoryError:堆内存满了,因为内存溢出或没有可用的内存提供给垃圾回收器时,Java 虚拟机无法分配一个对象,这时抛出该异常。

以上是一些常见的错误,在Error类中还有一些别的错误(参照文件Java.lang.Throwable.Error).

(2)Exception(异常)

一旦发生,可以捕获并处理,不会导致程序终止,有时可以避免有时无法避免。

异常的分类:

1.编译时异常(需要强制处理)       2.运行时异常(不需要强制处理)

常见的异常有:

IOException:输入输出流异常
FileNotFoundException:文件找不到的异常
ClassNotFoundException:类找不到的异常
DataFormatException:数据格式化异常
NoSuchFieldException:没有匹配的属性异常
NoSuchMethodException:没有匹配的方法异常

SQLException:数据库操作异常
TimeoutException:执行超时异常

常见的运行时异常:

RuntimeException:运行时异常
NullPointerException:空指针异常

ArrayIndexOutofBoundsException:数组越界异

ClassCastException:类型转换异常
IllegalArgumentException:非法的参数异常
InputMismatchException:输入不匹配

以上是常见的一些异常,另外还有别的异常,参见文件:Java.lang.Throwable.Exception

既然我们常常会遇到一些异常,那我们如何来处理这些异常就是一个急需解决的事情。

(1) 如何处理编译时异常?

方法一:将需要处理的代码块放在一个try...catch...中
try{
//需要处理异常的代码
}catch(XXXException ef){
ef.printStackTrace();
}

我们方法一就是要将我们不确定的代码放入try......catch中,先进行try一下,如果没有异常,则不会触发catch,没有输出,一旦出现异常,那么catch就会工作,在catch中捕获异常信息,根据异常信息进行补救措施。

如以下代码:

 方法二:在出现异常的方法上直接向上抛出异常,throws

void ff() throws XXXException{

}

将出现的异常的代码中,放入如上的方法中,就会将异常抛给该方法的上一级,在主函数上继续向上抛,最终抛给JVM java虚拟机,让JVM来解决该问题。

如代码:

 注意:在catch和throws的时候如果不确定是什么异常,就直接写一个Exception.

(2) 如何处理运行时异常?

1.一般情况下,运行时异常是不用处理的 
2.在某些情况下,如果对发生异常的结果进行处理,也可以对运行时异常进行try...catch...

以上就是一些我们处理编译时异常和运行时异常的方法。

在程序出现异常时,有时候我们可以自定义异常,以便我们能够发现是什么异常。

那么如何自定义异常??

1.当运行时,程序出现意外,可以抛出异常对象来结束程序
如:

//抛出运行时异常对象
RuntimeException ef = new RuntimeException("下标越界!index:"+index+" ,size:"+size());
throw ef;

2.对于编译时异常,同样可以抛出异常对象
但在方法定义时候必须加上throws

如:
public void test(int t) throws Exception{
if (t < 0 || t > 100) {
Exception ef = new Exception("数据错误");
throw ef;
}
}

例如:

 运行结果:

 从结果可以看出,我们在输入数据的时候出现错误,这样通过自定义异常能够让我们更直接快速的找到运行或编译时的异常。

在上述中我们分别提到了三种throw,分别是Throwable,Throws以及throw,那么到底三者有什么区别?

Throwable:是指在在Java.lang包中的一个类,其包含了所有的异常和错误,其中类Error和Exception 是它

的子类。

Thows:是指在解决编译时异常,将方法中异常抛给上一级,在方法后面要加Throw Exception来进行抛。

throw:是指在自定义异常时,如果方法出现异常,那么将作为引用方法的对象抛出。即抛出异常。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-10-25
在Java编程中,常见的错误有很多,对于初学者来说尤为常见。如果您想学习Java编程并避免这些错误,选择千锋教育将是您最佳的选择。
更系统全面的学习资料,点击查看
在学习和实践Java编程的过程中,经常会遇到以下一些常见错误:

1. 语法错误:这是初学者经常遇到的错误之一。在Java编程中,每个语句都必须按照规定的语法书写,包括正确使用标点符号、括号、分号等。如果语法出错,编译器将无法识别代码,导致编译错误。

2. 变量命名错误:变量名应该具有描述性,能够清晰地表达其用途。初学者有时会给变量赋予不相关或模糊的名称,导致代码难以理解或产生错误。

3. 类型错误:Java是一门强类型语言,要求变量在声明时必须指定数据类型,并且保证后续操作与该类型相兼容。类型错误可能包括给变量赋予错误的数据类型或将不兼容的数据类型进行运算等。

4. 空指针异常:空指针异常是Java编程中常见的运行时错误。它表示在访问一个空对象的成员时发生了错误。避免空指针异常的方法包括对对象进行合理的判空处理和使用安全调用操作符等。

5. 数组越界错误:在访问数组元素时,索引值超过数组长度将导致数组越界错误。为避免此类错误,应确保在访问数组元素之前检查索引值是否合法。

6. 逻辑错误:逻辑错误是指程序的实际结果与预期结果不一致。这可能是由于代码中的条件判断、循环控制或算法本身存在问题所导致的。

千锋教育的Java培训课程注重帮助学员避免常见的编程错误,并通过理论学习和实践项目的方式提高他们的编程能力。我们的培训课程涵盖了Java基础知识、面向对象编程以及常用框架和工具的学习。通过我们经验丰富的师资团队的指导,学员将学会如何规避常见的编程错误,并掌握解决问题的方法和技巧。

除了Java编程培训,千锋教育还提供其他热门领域的IT培训课程,如web前端开发和大数据培训。如果您对这些领域也感兴趣,学习相关技术将为您提供更多的职业选择。我们的前端培训课程涵盖了HTML、CSS、JavaScript以及常用前端框架的学习,而大数据培训课程则包括大数据基础知识、常见大数据工具和框架的学习。通过学习这些技术,您将具备更全面的技能背景,增加就业市场上的竞争力。

总之,避免常见的Java编程错误是提高编程能力的重要一步。千锋教育作为IT互联网技术培训领域的佼佼者,我们提供全面的Java培训课程,并致力于帮助学员快速掌握所需技能。如果您有任何疑问或需要了解更多关于我们的培训课程的信息,请随时联系我们的客服人员或访问我们的官方网站。千锋教育期待与您一同在IT互联网技术领域共同成长。千锋IT培训机构,热门IT课程试听名额限时领取官网在线咨询尚学堂java学院
2020-11-27·百度认证:北京尚学堂科技有限公司官方账号尚学堂java学院向TA提问

相信作为程序员的我们在对程序进行编译过程中经常会遇到错误,或者在运行过程中出现错误,在这里主要跟大家谈谈经常遇到的一些异常与错误,以及解决办法。

 

异常是指程序在编译或运行过程出现的错误。

在java.lang包中Throwable包含了所有的异常。

Error (错误) 和Exception(异常)

(1)Error(错误)

一旦发生无法修复,但可以避免发生。

常见错误类:

IOError:I/O错误,当发生严重的I/O错误时,抛出此错误。
VirtualMachineError :虚拟机错误,当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。

StackOverflowError:栈内存满了,当应用程序递归太深而发生堆栈溢出时,抛出该错误。

OutofMemoryError:堆内存满了,因为内存溢出或没有可用的内存提供给垃圾回收器时,Java 虚拟机无法分配一个对象,这时抛出该异常。

以上是一些常见的错误,在Error类中还有一些别的错误(参照文件Java.lang.Throwable.Error).

(2)Exception(异常)

一旦发生,可以捕获并处理,不会导致程序终止,有时可以避免有时无法避免。

异常的分类:

1.编译时异常(需要强制处理)       2.运行时异常(不需要强制处理)

常见的异常有:

IOException:输入输出流异常
FileNotFoundException:文件找不到的异常
ClassNotFoundException:类找不到的异常
DataFormatException:数据格式化异常
NoSuchFieldException:没有匹配的属性异常
NoSuchMethodException:没有匹配的方法异常

SQLException:数据库操作异常
TimeoutException:执行超时异常

常见的运行时异常:

RuntimeException:运行时异常
NullPointerException:空指针异常

ArrayIndexOutofBoundsException:数组越界异

ClassCastException:类型转换异常
IllegalArgumentException:非法的参数异常
InputMismatchException:输入不匹配

以上是常见的一些异常,另外还有别的异常,参见文件:Java.lang.Throwable.Exception

既然我们常常会遇到一些异常,那我们如何来处理这些异常就是一个急需解决的事情。

(1) 如何处理编译时异常?

方法一:将需要处理的代码块放在一个try...catch...中
try{
//需要处理异常的代码
}catch(XXXException ef){
ef.printStackTrace();
}

我们方法一就是要将我们不确定的代码放入try......catch中,先进行try一下,如果没有异常,则不会触发catch,没有输出,一旦出现异常,那么catch就会工作,在catch中捕获异常信息,根据异常信息进行补救措施。

如以下代码:

 方法二:在出现异常的方法上直接向上抛出异常,throws

void ff() throws XXXException{

}

将出现的异常的代码中,放入如上的方法中,就会将异常抛给该方法的上一级,在主函数上继续向上抛,最终抛给JVM java虚拟机,让JVM来解决该问题。

如代码:

 注意:在catch和throws的时候如果不确定是什么异常,就直接写一个Exception.

(2) 如何处理运行时异常?

1.一般情况下,运行时异常是不用处理的 
2.在某些情况下,如果对发生异常的结果进行处理,也可以对运行时异常进行try...catch...

以上就是一些我们处理编译时异常和运行时异常的方法。

在程序出现异常时,有时候我们可以自定义异常,以便我们能够发现是什么异常。

那么如何自定义异常??

1.当运行时,程序出现意外,可以抛出异常对象来结束程序
如:

//抛出运行时异常对象
RuntimeException ef = new RuntimeException("下标越界!index:"+index+" ,size:"+size());
throw ef;

2.对于编译时异常,同样可以抛出异常对象
但在方法定义时候必须加上throws

如:
public void test(int t) throws Exception{
if (t < 0 || t > 100) {
Exception ef = new Exception("数据错误");
throw ef;
}
}

例如:

 运行结果:

 从结果可以看出,我们在输入数据的时候出现错误,这样通过自定义异常能够让我们更直接快速的找到运行或编译时的异常。

在上述中我们分别提到了三种throw,分别是Throwable,Throws以及throw,那么到底三者有什么区别?

Throwable:是指在在Java.lang包中的一个类,其包含了所有的异常和错误,其中类Error和Exception 是它

的子类。

Thows:是指在解决编译时异常,将方法中异常抛给上一级,在方法后面要加Throw Exception来进行抛。

throw:是指在自定义异常时,如果方法出现异常,那么将作为引用方法的对象抛出。即抛出异常。

已赞过已踩过<你对这个回答的评价是?评论收起千锋IT教育
2023-10-25·千锋-IT职业教育良心机构千锋IT教育向TA提问在Java编程中,常见的错误有很多,对于初学者来说尤为常见。如果您想学习Java编程并避免这些错误,选择千锋教育将是您最佳的选择。
更系统全面的学习资料,点击查看
在学习和实践Java编程的过程中,经常会遇到以下一些常见错误:

1. 语法错误:这是初学者经常遇到的错误之一。在Java编程中,每个语句都必须按照规定的语法书写,包括正确使用标点符号、括号、分号等。如果语法出错,编译器将无法识别代码,导致编译错误。

2. 变量命名错误:变量名应该具有描述性,能够清晰地表达其用途。初学者有时会给变量赋予不相关或模糊的名称,导致代码难以理解或产生错误。

3. 类型错误:Java是一门强类型语言,要求变量在声明时必须指定数据类型,并且保证后续操作与该类型相兼容。类型错误可能包括给变量赋予错误的数据类型或将不兼容的数据类型进行运算等。

4. 空指针异常:空指针异常是Java编程中常见的运行时错误。它表示在访问一个空对象的成员时发生了错误。避免空指针异常的方法包括对对象进行合理的判空处理和使用安全调用操作符等。

5. 数组越界错误:在访问数组元素时,索引值超过数组长度将导致数组越界错误。为避免此类错误,应确保在访问数组元素之前检查索引值是否合法。

6. 逻辑错误:逻辑错误是指程序的实际结果与预期结果不一致。这可能是由于代码中的条件判断、循环控制或算法本身存在问题所导致的。

千锋教育的Java培训课程注重帮助学员避免常见的编程错误,并通过理论学习和实践项目的方式提高他们的编程能力。我们的培训课程涵盖了Java基础知识、面向对象编程以及常用框架和工具的学习。通过我们经验丰富的师资团队的指导,学员将学会如何规避常见的编程错误,并掌握解决问题的方法和技巧。

除了Java编程培训,千锋教育还提供其他热门领域的IT培训课程,如web前端开发和大数据培训。如果您对这些领域也感兴趣,学习相关技术将为您提供更多的职业选择。我们的前端培训课程涵盖了HTML、CSS、JavaScript以及常用前端框架的学习,而大数据培训课程则包括大数据基础知识、常见大数据工具和框架的学习。通过学习这些技术,您将具备更全面的技能背景,增加就业市场上的竞争力。

总之,避免常见的Java编程错误是提高编程能力的重要一步。千锋教育作为IT互联网技术培训领域的佼佼者,我们提供全面的Java培训课程,并致力于帮助学员快速掌握所需技能。如果您有任何疑问或需要了解更多关于我们的培训课程的信息,请随时联系我们的客服人员或访问我们的官方网站。千锋教育期待与您一同在IT互联网技术领域共同成长。千锋IT培训机构,热门IT课程试听名额限时领取
    官方电话官方服务
      官方网站免费试听热门课程校区地址学员关注视频教程
第2个回答  2019-06-26
错误就是error,它不同于异常。有时候程序不发生异常是不会出问题的,但有错误一定有问题。
常见的错误:编写错误,语句错误---这两个编译器会提醒,也就是常用的eclipse;
逻辑错误,这个要看你自己的逻辑思维了。
潜在错误,也就是编写语句逻辑都没有问题,但jvm检测有问题,就需要你自己找了,通常潜在错误都有逻辑问题。
第3个回答  2020-11-24

作为程序员在程序开发的过程中难免的要出现一些不是自己水平问题二出现的一些常见的错误。本文就为大家介绍一些常见在Java开发过程中遇见的一些常见的错误。

一、常见错误1:多次拷贝字符串

测试所不能发现的一个错误是生成不可变(immutable)对象的多份拷贝。不可变对象是不可改变的,因此不需要拷贝它。最常用的不可变对象是String。

二、常见错误2:没有克隆(clone)返回的对象

封装(encapsulation)是面向对象编程的重要概念。不幸的是,Java为不小心打破封装提供了方便——Java允许返回私有数据的引用(reference)。

三、常见错误3:不必要的克隆

四、常见错误4:自编代码来拷贝数组

五、常见错误5:拷贝错误的数据

有时候程序员知道必须返回一个拷贝,但是却不小心拷贝了错误的数据

六、常见错误6:检查new 操作的结果是否为null

检查当然没什么错误,但却不必要,if和throw这两行代码完全是浪费,他们的唯一功用是让整个程序更臃肿,运行更慢。

七、常见错误7:用== 替代.equals

在Java中,有两种方式检查两个数据是否相等:通过使用==操作符,或者使用所有对象都实现的.equals方法。原子类型(int, flosat, char 等)不是对象,因此他们只能使用==操作符

八、常见错误8:混淆原子操作和非原子操作

Java保证读和写32位数或者更小的值是原子操作,也就是说可以在一步完成,因而不可能被打断,因此这样的读和写不需要同步。

九、常见错误9:在catch 块中作清除工作

十、常见错误10: 增加不必要的catch 块

一些开发者听到try/catch块这个名字后,就会想当然的以为所有的try块必须要有与之匹配的catch块。

C++程序员尤其是会这样想,因为在C++中不存在finally块的概念,而且try块存在的唯一理由只不过是为了与catch块相配对。

本回答被网友采纳
相似回答