博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java学习------异常
阅读量:7253 次
发布时间:2019-06-29

本文共 1371 字,大约阅读时间需要 4 分钟。

异常,什么是异常?简单的说异常是一种处理机制。将用户所没有考虑到的错误进行处理。由于程序猿无法保证一段代码永远不会出错。

java中异常通过5个keyword:try , catch , throw , throws , finally。

当中,trykeyword后紧跟一个花括号括起来的代码块(花括号不可省略)简称try块。

它里面放置可能引发异常的代码。

catch后相应异常类型和一个代码块,用于表明该catch块用于处理这样的类型的代码块。多个catch块后还能够紧跟一个finally块,finally块用于回收在try块里打开的物理资源,异常机制会保证finally块总被运行。

throwkeyword主要在方法签名中使用,用于声明该方法可能抛出的异常,而throw用于抛出一个实际的异常,throw能够单独作为语句使用,抛出一个详细异常对象。

try{ 若运行代码出现异常 } catch(Exception e){异常处理部分} 异常处理完后,程序继续运行。catch()括号里为捕捉到的异常。

异常类型不知道就写Exception。e.printStackTrace() 简单理解为打印异常信息。

*一段代码不能连着抛2个异常,由于第二个无法抛出。即使第二个抛出了,也是在第一个攻克了的情况下。

*无法用逻辑推断的用异常方便。

(异常的意义)

异常的处理方式有2种。①try{}catch(){}自己处理异常。②在方法后加throws 交给java虚拟机处理。

异常处理步骤:try{} catch(1){} catch(2){} ... finally{} 不管是否捕获异常。finally都会去运行。

finally对全部异常进行统一的管理。一般finally是对内存回收等机制的管理。

异常分类:①、Error 系统错误。 ②、Exception 必须处理的异常。

③、RuntimeException 可处理。也可不处理的异常。

自己定义异常。throws new。。。 并继承Exception。

void f() throws A

{

}

*throws A表示调用f方法时,f方法可能会抛出A类异常,建议您调用f方法时最好对f方法可能抛出的A类异常进行捕捉。

*throws A不表示f方法一定会抛出A类异常,f方法能够不抛出异常。

*throws A不表示调用f方法时,必须对A类异常进行捕捉。

如果A是RuntimeException子类异常,因为RuntimeException的子类异常可处理也可不处理,所以编译器同意调用f方法时,对f方法抛出的RuntimeException子类异常不进行处理。

(可是,强烈建议。对throws出的全部异常进行处理,如果一个方法内部已经对A异常进行了处理。就不要在throws A了)

*先catch子类异常再catch父类异常

*catch与catch之间不能有其它代码。

*重写方法抛出异常范围不能大于被重写方法排除的异常范围。

异常的长处:①、强制程序猿考虑程序的安全性和可控性。

②、有利于代码调试。

③、把错误处理代码从常规代码中分离出来。

转载于:https://www.cnblogs.com/yutingliuyl/p/7191159.html

你可能感兴趣的文章
ASP.NET MVC学习系列(一)-WebAPI初探
查看>>
Gson简要使用笔记
查看>>
windows批量创建用户
查看>>
category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
查看>>
"org.jboss.netty.internal.LoggerConfigurator".DESCRIBED is already registered 的解决办法
查看>>
字符串交替打印 操作方法
查看>>
Ubuntu 用vsftpd 配置FTP服务器
查看>>
java中的io系统详解(转)
查看>>
iOS开发- UICollectionView详解+实例
查看>>
android 从零单排 第一期 按键显示helloworld
查看>>
Get buck-boost performance from a boost regulator
查看>>
串行通信------字符串发送和十六进制发送
查看>>
Linux_Command
查看>>
安全DNS
查看>>
Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
查看>>
android开发 java与c# 兼容AES加密
查看>>
VMware Fusion DHCP方式下如何指定虚拟机IP地址
查看>>
【XSS】延长 XSS 生命期
查看>>
Java知多少(4)J2SE、J2EE、J2ME的区别
查看>>
HDR 拍照模式的原理,实现及应用
查看>>