java学会这些,我就入门啦!(基础篇三)异常讲解与常见的异常

异常
在程序中,错误可能产生于程序员没有预料到的各种情况,或者超出程序员可控范围的环境,为了能够及时有效地处理程序中的运行错误,Java 专门引入了异常类。
在写代码的时候处理异常一般遵循以下三个原则:
1.在当前方法声明中使用 try catch 语句捕获异常。
2.一个方法被覆盖时,覆盖它的方法必须拋出相同的异常或异常的子类。
3.如果父类抛出多个异常,则覆盖方法必须拋出那些异常的一个子集,而不能拋出新异常。
Throwable 类是所有异常和错误的超类,下面有 Error 和 Exception 两个子类分别表示错误和异常。

Exception 类是用来发现可能出现的异常情况,也用来创建自定义异常,这种异常一般是程序员用来发现代码错误的指示牌,在异常信息里,我们可以找到很多有用的信息,用来引导我们解决问题。我们来new一个最简单的运行时异常来看一下!!

在这里插入图片描述
下图为报错信息
在这里插入图片描述
不难发现,这个可以很直观的看到异常信息,因为一旦报错,我们的异常很可能会被catch吃掉,但是我们throw了一个运行时异常(RuntimeException),可以用来提醒开发人员,并且将异常信息打印出来,方便找错。
Error 的出现通常是不希望被捕获的异常,因为Error类型的异常显示的是与运行的系统本身相关的错误,例如堆栈内存溢出,一般出现这类的问题都会比较头疼,对于我们开发人员来说,如果生产环境上遇到了Error,一般是灾难性的。
我们这篇文章主要简单介绍一下异常以及常见的Exception。
1.Exception
这个不多做介绍,所有异常的根类,当用全局异常器处理的时候,经常会见到。
2.NullPointerException
空指针异常,最常见,但是也是最好检查的异常之一。一般情况下,异常信息会显示到你代码的行数错误上去,比如一行代码报了空指针,那么必然是这一行你操作了一个空的对象,比如你刚new了一个全新的对象,赋值没有赋进去,就直接get了,那么就会报NullPointerException。简单点就是你用一个null去点了其他属性,比如null.get,null.set,诸如此类的操作。
3.SQLException
操作数据库异常,一般情况下,这个异常都是你的sql写错了,这个时候你就要去检查一下你的sql语句,建议把你的日志信息中的sql语句拷出来,执行一下。
4.ClassNotFoundException
不能加载所需的类,这个异常在新手身上是最常见的,也是最麻烦的,在你实在找不到问题的情况下你可以尝试clean一下你的Eclipse,或者重启一下电脑。
5.NumberFormatException
数字转换异常,这个异常比较简单,就是转换到不符合目标数字接收格式的异常。打个比方,假如你用一个字符串“1.5”转换成Integer,那么就会报这个异常。
6.IOException
IO异常也是很常见的,一般你需要上传文件等需要操作IO的地方,都需要抛出这个异常。
7.ArraylndexOutOfBoundException
(索引)角标越界异常,对于数组索引,有的叫角标,有的叫下标,反正我们只要知道,这是操作的数组没有你预想的那么长,比如它的size为1,你去get(2),那么就会出现这个异常,因为他根本没有这个异常。
 8.IllegalArgumentException
非法参数异常,当方法接收到不符合参数列表的参数时,就会报这个异常。

还有一些异常不那么常见或者可将性不高,我们也提一下RuntimeException(运行时异常),FileNotFoundException(找不到文件异常),InterruptedException(线程中断异常)。。。。。。

篇幅所限,还有很多异常我就不讲了,希望看到这篇文章的朋友可以关注我。

每天抽出空闲的时间多看一点点。相信我,你会变得更强。​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

carl的分享笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值