2006年7月20日 Java中的异常处理 ( Exception) Java的编码规范(code style)

1、异常的层次结构。所有的异常都继承至Throwalbe类的子类Exception,但Exception类可以分属不同的包。Throwable类的另外一个子类是Error类。打开一个不存在的文件、网络连接中断、数组下标越界、正在加载的类文件丢失等都会引发异常。Java中的异常类Exception定义了程序中遇到的轻微的错误条件。Java中的错误类Error定义了程序中不能恢复的严重错误条件。如内存溢出、类文件格式错误等。这一类错误由Java运行系统处理,不需要我们去处理。
2、Java程序在执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。当声明抛出一个异常时,需要关键字throws;而当程序中抛出一个异常则用关键字throw。异常是抛给相应方法的调用者,若不想处理这个异常,则可以继续抛出,直到运行时虚拟机再处理,当然实际编程中还是最好自行捕获并处理异常。异常为编写一个健壮的程序提供了保证。
3、当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。另外建议用户捕捉到异常后一定要对异常进行一定的处理,否则会给程序带来潜在的bugs。常见的Exception处理方法有getMessage(); toString(); printStackTrace();参见JDK文档,他们都继承自Throwable类。对于多个抛出的异常,可以写多个catch语句来捕捉,一般具体的异常在前,通用的Exception最后捕捉。
4、如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。异常发生处以后的代码将不会执行。
5、try/catch/finally语句。其中无论异常是否发生,finally内的语句都会被执行,即使用户在try或catch语句中使用了return,当然这也不是绝对的,如果用户在try或者catch中使用了System.exit()强行退出程序的话,finally内的语句并不会执行。
6、对于RuntimeException,通常不需要我们去捕获,这类异常由Java运行系统自动抛出并自动处理,所以编译时不会出错。除了RuntimeException,其它的异常抛出后编译系统都强制要求捕获并处理。另外,可以在捕获一个异常并的同时抛出一个新的异常。
7、如果父类中的方法抛出多个异常,则子类中的覆盖方法要么抛出相同的异常,要么抛出异常的子类,但不能抛出新的异常(注:构造方法除外,因为构造方法是不会被继承的)。
8、我们可以在方法声明时,声明一个不会抛出的异常,Java编译器就会强迫方法的使用者对异常进行处理。这种方式通常应用于abstract base class和interface中。
9、创建一个自己的异常时,必须继承至Exception类。
Java 编程规范
n       package的命名
package 的名字由全部小写的字母组成,例如:cn.mybole。
n       class和interface的命名
class和interface的名字由大写字母开头而其他字母都小写的单词组成,例如:Person,RuntimeException。
n       class变量的命名
变量的名字用一个小写字母开头,后面的单词用大写字母开头,例如:index,currentImage。
n       class方法的命名
   方法的名字用一个小写字母开头,后面的单词用大写字母开头,例如:run(),getBalance()。
n       static final变量的命名
static final变量的名字所有字母都大写,并且能表示完整含义。例如:PI,PASSWORD。
n       参数的命名
参数的名字和变量的命名规范一致。
n       数组的命名
数组应该总是用这样的方式来命名:byte[] buffer。
编码规范仅供参考,但我仍然觉得Java中对变量的命名采取匈牙利命名法比较好。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值