JAVA学习过程中遇到的BUG
Java异常
1.NullPointException
java.lang.NullPointException,就是我们经常遇到的空指针异常。
java是没有指针的,这里说的"java指针"指的就是java的引用,空指针就是空引用,java空指针异常就是引用本身为空,却调用了方法,这个时候就会出现空指针异常。
列如用一个值为null的对象去调用某个方法,就会抛出NullPointException异常
public static void main(String[] args) {
String str = new String("hello");
//将str对象置为null
str = null;
//检索下标为1的元素
str.charAt(1);
}
在第7行,用值为null的str去调用charAt(),运行的时候就抛出了空指针异常
2.ArithmeticExecption
java.lang.ArithmeticException是出现异常的运算条件时,抛出此异常。
例如,一个整数“除以零”时,就会抛出运算异常
public static void main(String[] args) {
//整数除以0
int num = 3/0;
}
运行时抛出 “java.lang.ArithmeticException: / by zero“
3.ClassCastException
java.lang.ClassCastException,强制类型转换异常。
通常是进行强制类型转换时候出的错误,一般发生在父类转换为子类、sql映射(resultType="X")这些操作上
案例:
Animal表示动物类,Dog表示狗类,是动物的子类,Cat表示猫类,是动物的子类。看下面的代码:
Animal a1 = new Dog();
Animal a2 = new Cat();
Dog d1 = (Dog)a1;
Dog d2 = (Dog)a2;
第4行代码和第5行代码基本相同,从字面意思看都是把动物(Animal)强制转换为狗(Dog),但是第5行代码就会在运行的时候抛出java.lang.ClassCastException异常。
4.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException,数组下标越界异常。 这其实就是 数组越界了的问题
数组就比喻作一个大桌子,桌子上会有很多个抽屉用来装东西,制造n个抽屉就只能用n个抽屉
java中的数组空间分配是从0到它的length-1,
如下,第2行定义了一个长度为4的数组
//数组下标0,1,2,3
int[] arr = {1,2,3,4};
System.out.println(arr[5]);
在第3行使用的根本就不存在的下标5,使用了不存在的“5号抽屉”,所以下标越界,运行时抛出java.lang.ArrayIndexOutOfBoundsException
5.FileNotFoundException
java.io.FileNotFoundException,一般为“拒绝访问”和“系统找不到指定路径”两种情况。
情况1:对文件进行输入输出流操作,也就是InputStream和OutputStream操作时,如果填写的路径不存在,那么会报系统找不到指定路径异常提示。
情况2:对文件进行输入输出流操作,如果路径指定的是目录(没有指定某个文件)时,就会报拒绝访问异常。(如果对本地磁盘没有访问权限的话也会报这个异常)
6.NumberFormatException
java.lang.NumberFormatException,数字格式化异常(数字转换异常)。
当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,则会抛出该异常。
String str = "ABC";
int value = Integer.parseInt(str);
在第2行调用方法将字符串转换为int类型,由于ABC不可能转换为数字,所以运行时抛出java.lang.NumberFormatException异常。
parseInt()是将字符串转换为int类型的方法
还有第二种情况:
int类型存储范围是-2的31次方到2的31次方-1。
如果你的 String str= "值 "; 超过了int类型最大的值,也会抛出此异常
String str = "999999999999999999999999999";
int value = Integer.parseInt(str);
7.SQLException
java.sql.SQLException,SQL异常。
当使用 JDBC与数据源进行交互的时候发生错误,则会抛出名为 SQLException的异常。
8.IOException
java.io.IOException,IO异常。
在读写数据的时候经常会遇到这个异常,一般都是路径拼写错误导致的
9.NoSuchMethodException
java.lang.NoSuchMethodException,找不到方法异常
JAVA学习过程中遇到的BUG的更多相关文章
- Java学习过程中的总结的小知识点(长期更新)
Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...
- java学习过程中遇到的坑及解决方法
1. Table 'my_data_base.gjp_zhangwu' doesn't exist Query: select * from gjp_zhangwu Parameters: 数据库中的 ...
- Java学习过程中的收获
1. String <--> Date 这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=new ...
- Java学习过程中要记录的地方--汇总
1.Map的子类 HashMap 是哈希表,根据哈希算法来存的,取出来不一定是按照原来的循序: Ctrl+T 可以看到 HashMap下面有 LinkHashMap 是线性实现的,里面有顺序. --- ...
- 在Java编码中,如何减少bug数量
众所周知,Java编程语言在IT行业是企业中不可缺少的.不管,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能.但在编写代码时,bug永远是困扰每一位从业者的头号 ...
- Java基础学习总结(81)——如何尽可能的减少Java代码中bug
Java编程语言的人气自然无需质疑,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能. 不过在编写代码时,bug永远是困扰每一位从业者的头号难题.在今天的文章中, ...
- JAVA and JAVA WEB with TOMCAT and ECLIPSE 学习过程中遇到的字符乱码问题及解决方法汇总(随时补充)
JAVA语言具有跨平台,unicode字符集编码的特点. 但是在开发过程中处理数据时涉及到的字符编码问题零零散散,尤其是处理中文字符时一不留神就可能出现一堆奇奇怪怪的符号,俗称乱码. 对于乱码,究其原 ...
- 用一天的时间学习Java EE中的SSH框架
首先说明一下,本人目前主要从事.NET领域的工作,但对于C++.Java.OC等语言也略知一二,周末闲来无事,特花费一天的时间学习了一下Java中的SSH框架,希望把学习过程中的心得体会与园友们进行分 ...
- Java开发中常见的危险信号(上)
本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...
随机推荐
- APP移动端测试
重点: app测试的内容 add 命令 monkey命令 次重点:模拟器的安装 雷电 夜神 android 自带的模拟器 真机测试 简单了解云测Testing 腾讯云() 了解:市场有点移动端的操 ...
- 磨皮美颜算法 附完整C代码
前言 2017年底时候写了这篇<集 降噪 美颜 虚化 增强 为一体的极速图像润色算法 附Demo程序> 这也算是学习过程中比较有成就感的一个算法. 自2015年做算法开始到今天,还有个把月 ...
- yum 安装包的时候提示“没有可用软件包”
今天在使用 yum 命令进行包的下载时候,Linux 提示 没有可用的软件包~ 如下: [root@localhost share]# yum -y install wordpress 已加载插件:f ...
- Error: Cannot find module 'webpack'
运行 npm start 报错 Error: Cannot find module 'webpack' 安装了 npm install --save-dev webpack cnpm install ...
- 微信小程序-创建小程序页面
QQ讨论群:785071190 创建页面 创建小程序页面非常简单,鼠标在需要创建页面的目录右击,可看到下图菜单,选择"Page"即可创建出一个页面. 输入页面名称,回车就可以创建出 ...
- 在maven项目中使用Junit进行单元测试(一)
https://blog.csdn.net/ai_xue_xi/article/details/51819729 这篇文章相当的经典,最好使用的maven生成单元测试报告,不要在使用ant脚本生成单元 ...
- 实战笔记丨JDBC问题定位指南
JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...
- Myeclipse启动WebLogic 总是报账号密码无效<Authentication denied: Boot identity not valid
在MyEclipse下配置了Weblogic 11后,每次启动从报错: Critical> 看了下描述,是用户名及密码什么的问题,我想起来,配置Weblogic 的域的时候将密码改成了12345 ...
- python简易版微信或QQ轰炸
在讲解代码之前我们先来回忆一下,平时我们发送消息时,先打开微信或QQ的界面,在信息栏中输入你要发送的内容在点击发送或通过快捷键发送.如果要发送表情时,先打开微信或QQ的界面,在点击表情包中你要发送 ...
- Python之浅谈多态和封装
目录 组合 什么是组合 为什么使用组合 多态和多态性 多态 什么是多态? 多态性 好处 多态性 什么是多态性 封装 封装是什么意思? 隐藏 如何用代码实现隐藏 python 实际上是可以访问隐藏属性的 ...