Java编程

马士兵java课堂笔记,马士兵java例子笔记

查看( 198 )/评论( 0 )/评分( 0 / 0 )Excepetion异常

Excepetion指的是运行期(java)的错误而不是编译时(javac)的错误

Java会检查数组下标是否越界

设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而受阻断或产生不可预见的结果

Java程序的执行过程中如发现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将其提交给Java运行时系统,这个过程称为抛出(throw)异常。也就是通常我们看到的将错误的信息(即异常对象包装的信息)打印到了命令行(在此相当于调用了printStackTrace())。所以我们现在要在运行时系统抛出异常以前,把这些错误信息抓住。见下

当Java运行时系统接受到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。使用try……catch。其中的catch()的括号里有异常的类型——“形参”。Catch很像方法的声明。try里写的是可能出错的代码,catch写的是错误出现后怎么办。在catch中可以使用“形参. printStackTrace()”来打印错误信息。

比如写catch(ArithmeticException ae) {……}这里的ae是我们自己定义的异常对象的名字。当出现异常时,系统会帮ae初始化,然后将真正的错误传递给它

Publicvoid someMethod() throws {//注意用的是throws!!声明该方法可能抛出的异常

If (someCondition()){

thorw newSomeException(“错误的原因”);// //注意用的是throw !!构造并抛出异常对象

try{//调用该方法时试图捕获异常

someMethod();

}catch(SomeExceptione){//定义处理异常的代码

…………………………//异常处理代码

例如:void m(int i) throwsArithmeticException {

throw new ArithmeticException(“被除数为0”);

publicclass TestEx

public static void main(String[] args) {

TestEx te = new TestEx();

te.m(0);//系统除了提示”被除数为0″外还提示main和m()方法错误。main函数错误时由于调用了m()引起的。一个错误是由另外的错误引起的,这就是打印堆栈信息

Throwable类分为:error(系统的内部错误,程序本身无法处理的东西)

Exception它包含了runtimeException,这是一些经常出的小异常,可catch也可以不catch,一般都不catch由系统自动检测并将它们交给缺省的异常处理程序。除此以外的exception必须要catch。对于是Exception还是runtimeException可以查看API

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注