- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章浅谈十个常见的Java异常出现原因由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
异常是 java 程序中经常遇到的问题,我想每一个 java 程序员都讨厌异常,一 个异常就是一个 bug,就要花很多时间来定位异常问题.
1、nullpointerexception 。
空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。具体看上篇文章:空指针常见案例.
2、outofoutofmemoryerror 。
内存出现异常的一种异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最大的堆内存,需要调整堆内存大小(-xmx)以及优化程序.
3、ioexception 。
io,即:input, output,我们在读写磁盘文件、网络内容的时候经常会生的一种异常,这种异常是受检查异常,需要进行手工捕获.
如文件读写会抛出 ioexception:
1
2
|
public
int
read()
throws
ioexception
public
void
write(
int
b)
throws
ioexception
|
4、filenotfoundexception 。
文件找不到异常,如果文件不存在就会抛出这种异常.
如定义输入输出文件流,文件不存在会报错:
1
2
|
public
fileinputstream(file file)
throws
filenotfoundexception
public
fileoutputstream(file file)
throws
filenotfoundexception
|
filenotfoundexception 其实是 ioexception 的子类,同样是受检查异常,需要进行手工捕获.
5、classnotfoundexception 。
类找不到异常,java开发中经常遇到,是不是很绝望?这是在加载类的时候抛出来的,即在类路径下不能加载指定的类.
看一个示例:
1
2
3
4
5
6
7
8
|
public
static
<t>
class
<t> getexistingclass(classloader classloader, string classname) {
try
{
return
(
class
<t>)
class
.forname(classname,
true
, classloader);
}
catch
(classnotfoundexception e) {
return
null
;
}
}
|
它是受检查异常,需要进行手工捕获.
6、classcastexception 。
类转换异常,将一个不是该类的实例转换成这个类就会抛出这个异常.
如将一个数字强制转换成字符串就会报这个异常:
1
2
|
object x =
new
integer(
0
);
system.out.println((string)x);
|
这是运行时异常,不需要手工捕获.
7、nosuchmethodexception 。
没有这个方法异常,一般发生在反射调用方法的时候,如:
1
2
3
4
5
6
7
8
|
public
method getmethod(string name,
class
<?>... parametertypes)
throws
nosuchmethodexception, securityexception {
checkmemberaccess(member.
public
, reflection.getcallerclass(),
true
);
method method = getmethod0(name, parametertypes,
true
);
if
(method ==
null
) {
throw
new
nosuchmethodexception(getname() +
"."
+ name + argumenttypestostring(parametertypes));
}
return
method;
}
|
它是受检查异常,需要进行手工捕获.
8、indexoutofboundsexception 。
索引越界异常,当操作一个字符串或者数组的时候经常遇到的异常.
例:一个arraylist数组中没有元素,而你想获取第一个元素,运行是就会报此类型的错误.
1
2
3
4
5
6
|
public
class
test{
public
static
void
main(args[] ){
list<string> list =
new
arraylist<>();
system.out.println(list.get(
0
));
}
}
|
它是运行时异常,不需要手工捕获.
9、arithmeticexception 。
算术异常,发生在数字的算术运算时的异常,如一个数字除以 0 就会报这个错.
1
|
double
n =
3
/
0
;
|
这个异常虽然是运行时异常,可以手工捕获抛出自定义的异常,如:
1
2
3
4
5
6
7
8
9
|
public
static
timestamp from(instant instant) {
try
{
timestamp stamp =
new
timestamp(instant.getepochsecond() * millis_per_second);
stamp.nanos = instant.getnano();
return
stamp;
}
catch
(arithmeticexception ex) {
throw
new
illegalargumentexception(ex);
}
}
|
10、sqlexception 。
sql异常,发生在操作数据库时的异常.
如下面的获取连接:
1
2
3
4
5
6
7
|
public
connection getconnection()
throws
sqlexception {
if
(getuser() ==
null
) {
return
drivermanager.getconnection(url);
}
else
{
return
drivermanager.getconnection(url, getuser(), getpassword());
}
}
|
又或者是获取下一条记录的时候:
1
|
1
boolean
next()
throws
sqlexception;
|
它是受检查异常,需要进行手工捕获.
以上所述是小编给大家介绍的十个常见的java异常出现原因详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。
原文链接:https://www.cnblogs.com/aiitzzx0116/p/10505476.html 。
最后此篇关于浅谈十个常见的Java异常出现原因的文章就讲到这里了,如果你想了解更多关于浅谈十个常见的Java异常出现原因的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
服务架构进化论 原始分布式时代 一直以来,我可能和大多数的人认知一样,认为我们的服务架构的源头是单体架构,其实不然,早在单体系
序列化和反序列化相信大家都经常听到,也都会用, 然而有些人可能不知道:.net为什么要有这个东西以及.net frameword如何为我们实现这样的机制, 在这里我也是简单谈谈我对序列化和反序列化的
内容,是网站的核心所在。要打造一个受用户和搜索引擎关注的网站,就必须从网站本身的内容抓起。在时下这个网络信息高速发展的时代,许多低质量的信息也在不断地充斥着整个网络,而搜索引擎对一些高质量的内容
从第一台计算机问世到现在计算机硬件技术已经有了很大的发展。不管是现在个人使用的PC还是公司使用的服务器。双核,四核,八核的CPU已经非常常见。这样我们可以将我们程序分摊到多个计算机CPU中去计算,在
基本概念: 浅拷贝:指对象的字段被拷贝,而字段引用的对象不会被拷贝,拷贝对象和原对象仅仅是引用名称有所不同,但是它们共用一份实体。对任何一个对象的改变,都会影响到另外一个对象。大部分的引用类型,实
.NET将原来独立的API和SDK合并到一个框架中,这对于程序开发人员非常有利。它将CryptoAPI改编进.NET的System.Security.Cryptography名字空间,使密码服务摆脱
文件与文件流的区别(自己的话): 在软件开发过程中,我们常常把文件的 “读写操作” ,与 “创造、移动、复制、删除操作” 区分开来
1. 前言 单元测试一直都是"好处大家都知道很多,但是因为种种原因没有实施起来"的一个老大难问题。具体是否应该落地单元测试,以及落地的程度, 每个项目都有自己的情况。 本篇为
事件处理 1、事件源:任何一个HTML元素(节点),body、div、button 2、事件:你的操作 &
1、什么是反射? 反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。 Oracle 官方对
1、源码展示 ? 1
Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数据类型,触发器,存储过程等各方面的信息。
可能大家谈到反射面部肌肉都开始抽搐了吧!因为在托管语言里面,最臭名昭著的就是反射!它的性能实在是太低了,甚至在很多时候让我们无法忍受。不过不用那么纠结了,老陈今天就来分享一下如何来优化反射!&nbs
1. 前言 最近一段时间一直在研究windows 驱动开发,简单聊聊。 对比 linux,windows 驱动无论是市面上的书籍,视频还是社区,博文以及号主,写的人很少,导
问题:ifndef/define/endif”主要目的是防止头文件的重复包含和编译 ========================================================
不知不觉.Net Core已经推出到3.1了,大多数以.Net为技术栈的公司也开始逐步的切换到了Core,从业也快3年多了,一直坚持着.不管环境
以前面试的时候经常会碰到这样的问题.,叫你写一下ArrayList.LinkedList.Vector三者之间的区别与联系:原先一直搞不明白,不知道这三者之间到底有什么区别?哎,惭愧,基础太差啊,木
目录 @RequestParam(required = true)的误区 先说结论 参数总结 @RequestParam(r
目录 FTP、FTPS 与 SFTP 简介 FTP FTPS SFTP FTP 软件的主动模式和被动模式的区别
1、Visitor Pattern 访问者模式是一种行为模式,允许任意的分离的访问者能够在管理者控制下访问所管理的元素。访问者不能改变对象的定义(但这并不是强制性的,你可以约定为允许改变)。对管
我是一名优秀的程序员,十分优秀!