现在,假设在程序代码中发生了一些非常糟糕的事情,例如,程序错误或死循环。在这种情况下,我们应该学会抛出异常,然后进行异常治疗,就像你生病时必须注册一样。注册后,我们可以去看医生。本文作为抛出异常教程,对异常抛出过程进行了详细的描述。
让我们举一个简单的例子:一个名为 read 读取Data的方法一具有下列信息的第一份文件:
Content-length: 1024
然而,读完733个字符后,文件就结束了。在这个时候,我们认为这是一种非正常的情况,希望抛出一个异常。
首先,我们应该决定应该抛出什么样的异常。将上述异常归因于I0Exception是一个不错的选择。仔细阅读 Java AP文档后会发现: EoFException的异常描述是“在输入过程中,遇到意想不到的EOF信号”。这就是我们要抛出的异常。以下是抛出这个异常的句子:
throw new EoFException();
或者这样写:
EoFException e=new EoFException();
throw e;
下面把这些代码放在一起
String readData(Scanner in) throws EoFException
}
...
while (...)
if (!in.hasNext()//EOF encountered
if (n <len)
throw new EoFException();
}
...
}
Return s;
}
EoFException类还有一个需要字符串参数的结构器。该结构可以更详细地描述异常情况。
String gripe ="Content-length: "+ len +" ,Received: ”+n;
throw new EoFException(gripe);
已经在前面看到了,很容易抛出一个已经存在的异常类。在这种情况下:
1)找到合适的异常类别。
2)创建这一类的对象。
3)抛出对象。
一方法抛出异常,这种方法不可能返回到调用器。这也意味着没有必要返回默认值或者代码负担错误优了。
在C++与java中,抛出开常的过程基本相同,只有一点微小的差别。在java中只能抛出Throwable 的子类的对象;而在C++中,但是可以抛出任何东西类型的值。
相信看完这篇关于抛出异常教程的文章,你会有所收获,有所悟。如果没有也没关系,这个站的java视频课程还有更深层次、更透彻的解释。看完之后,你会学会抛出异常操作。