day77异常类(处理错误,try catch)

为了避免人们在遇到错误时感到不快,因为在运行程序期间,由于程序的错误或一些外部环境造成用户数据丢失,这样的情况可以做到以下几点:

一,向用户通告错误。二、保存所有的操作结果。三、允许用户以适当的形式退出程序。

对于异常的情况,java使用一种异常处理机制来捕获机制来处理。

用户期望在出现错误时,程序能采用一些理智的行为,如果由于出错误而使得某些操作不能够完成的话,程序应该反正到一种安全的状态,并让用户执行另外一些命令。或者,允许用户保存操作的结果,并以适当的形式退出程序。异常处理的任务就是要将控制权从产生错误的地方传给处理这种情况的错误处理器。这个处理这些问题,要研究一些错误和问题,(PS:其实,说研究这几个错误,也就是我们平时测试中要关注的一些点的意思,由引有了了关于验证输入测试,硬件设备的测试,物理限制其实也可以是性能测试,代码错误就是我们测试是的白盒测试)

这些问题如下几种:一用户使用错误。二,设备错误,三物理限制。三代码错误。

异常对象都是派生于throwable类的一个实例。所有的异常都是由throwable继承而来的,但在下一层立即分解为两个分支,error 和exception

error类层次结构描述了java运行时系统的内部错误和资源耗尽错误,应用程序不应该抛出这个类型的对象。

                      thorwable

error                                             exception

                                  IOException              Runtime Exception

一个是runtim exception异常,另一个分支包含是其他异常。分别的情况是这样的:

runtime Exception 中:错误类型转换 

                                       数组访问访问越界     

                                       访问空指针

其他的异常:试图在文件尾部后面读取数据        

                       试图打开一个错误格式的URL

                        试图根据给定的字符串查找class对象,而这个字符串表示的类不存在

(PS:这里其实也可以这样来理解,就是说是runtime exception的错误是程序本身有问题的,而除此之外发。具有错误的异常是本身没问题,是因为操作上的原因,而选成的异常)

有这样一句话,说,“如果出现RuntimeException异常,就一定是你的问题”(这里的你,我们可以理解为程序员,也可以理解作代码)。

然果,如果发生了这样的异常,可以通过检测数组下标是否越界来避免ArrayIndexOutOfboundsException异常。不同的浏览器处理不同类别的URl,netscap可以处理mailto:URL格式,而applet查看器就不能处理这样的格式取决于具体的环境,而不仅仅是程序代码。java语言规范将派生于RuntimException类或Error类的所有异常“未检查异常”,其他异常为已检查异常。编译器将核查是否为所有已检查异常提供异常处理器。(注:我们讨论的所有的错误都是运行时)

如果遇到无法处理的情况,java的方法可以抛出的一个异常。这个道理很简单,一个方法不仅需要告诉编译器将要返回什么值,还要告诉编译器可能发生什么错误。如:一段代码知道有可能读取的文件不存在,或者内容为空。因此,试图处理文件信息的代码就需要通告编译器可能会抛出IOExcepton类型的异常。方法应该在其首部声明所有可能抛出的异常:public FileInputStream(String name )throws FIleNOtFoundExcepion

这个声明表示这个构造器可以根据给定的String参数产生一个FileINputStream对象,也有可能在遇到文件不存在的错误时抛出一个FileNotFoundExcepton异常。

下面的情况要抛出异常:一,调用 一个抛出异常已检查异常的方法

                                           二,在程序运行过程中发现错误,并且利用throw语句抛出一个已检查的异常。

                                          三,程序出现错误,

                                           四,java虚拟机和运行时为中出现的内部异常。


                                            


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值