Java中"非常机制"深化研究[Java编程]
本文“Java中"非常机制"深化研究[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
由于本文旨在探究Java"非常机制"的深层原理,因此关于"非常"的利用办法都不做具体阐明.首先看一段非常熟习的用于翻开一个文件的C程序段:
FILE *fp;
fp=fopen(filename,"rw");
if(fp==NULL){
printf("cannot open file ");
exit(0);
}
在这段程序中,if条件语句中的一段用来处理没有找到指定文件,大概别的缘由无法精确翻开指定文件.但是假如碰到一个责任心不强的程序员,他大概认为呈现找不到文件的大概性很小,大概由于思绪集合在程序功效的实现上而忘掉了处理这种情形.这时程序一样可以精确编译,并且普通情形下也不会呈现问题.但此时这段程序可以必定说是不够结实的,并且一旦这段程序发生了错误也会让程序员很难发现错误出在那边.在C语言以及别的大大都高级语言中都可以举出很多这种例子.
也就是一个函数在利用的时刻,大概会呈现并没有到达这个函数的利用目的的情形,哪怕在这段程序的特定利用环境下发生这种非常情形的大概性只有万分之一.常用处理的办法就是,程序员在需求利用某个函数时必须充分理解大概会有什么缘由招致该函数不能精确履行,然后加入呼应的条件判断语句来举行处理.背面将有一个例子阐明这个问题.
而Java的"非常机制"就是在处理上述问题中给了程序员非常简单而机动的方法.普通来说,别的高级语言主如果让函数利用者来关注该函数大概会呈现的非常情形,而java则是把这件事情交给办法(和函数对应的概念,在Java中称办法)的计划者来做.这关于办法的利用者来说带来的方就是不会因为责任心不强,大概办事丢三那四,会忘了在利用办法时处理大概发生的非常情形.而麻烦就是,在利用一个大概会发生非常的办法时,绝对不能视而不见,而必须做出呼应的处理.也就是说象上述C程序段中,假如忘了if程序块,这个程序乃至还能蒙过一个外行上司,但当利用Java来完成这个功效时,只要用到的办法利用了"非常"机制,假如不对大概产生"非常"的办法举行呼应处理,java编译器是不会让其通过的.
1、"非常类"的组织情势
Java系统类中的办法产生的非常都被组织成"非常类"(还有Error类,不在本文谈论范围),此办法和它相关的"非常类"通过throws关键字关联在一同,并且这些类都必须是Exception类的子类.任何一个自己开辟的类的办法中假如大概会产生某种非常,也可以将这种非常组织成一个"非常类",但这个"非常类"一样必须是Exception的子类,或孙子类等等.
例1:
/*isLegal于查抄数据能否合理,当>0时视为合理,返回合理值,
*不然视为不合理,抛出"非常".*/
int isLegal(int dt) throws LowZeroException // 这种定义本文中均称为办法与"非常"通
{ // 过throws成立了关联
if(dt>=0){
return data;
}
else
throw new LowZeroException();
}
/*自已写的非常类,担当自Exception*/
class LowZeroException extends Exception
{
public LowZeroException(){
super();
}
}
以上是“Java中"非常机制"深化研究[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |