java 基础(1) 自定义的异常处理
有时候,我们要自己定义异常处理的类,如下:
?
异常分两种,一张是运行时的异常? 还有一个是不是运行时期的异常。
?
总的父类异常是 Exception 这个类 然后被运行时异常类runtimeException和其他类基础
而RunTimeException 这个类被其他类继承的话,那么这样的异常就是运行期的异常,其他的直接基础Exception这个异常了。
?
?
? 举例说明:
?
?
这个类是基本的类就是自己定义的父类异常是非运行事情的异常,那么我在使用自己定义的
异常类的时候,继承这个类
package endual.utils;
public class EndualException extends Exception {
??? public EndualException (String message) {
??? ??? super(message) ;
??? ???
??? ???
??? }
???
??? public EndualException(String message,int id) {
??? ???
??? ??? super(message + id) ;
??? ???
??? }
???
???
}
?
?
比如的话:我这个异常是基础自己定义的父类的异常,这个是用于针对的是parse有关的异常
当然你也可以定义好多类似这样的异常类去处理特定的异常。。。。。,当然都需要继承自己首先封装好的EndualException这个异常类的
?
public class ParserBaseException extends EndualException {
??? public ParserBaseException(String message) {
??? ??? super(message);
??? ???
??? }
???
??? public ParserBaseException(String message,int id) {
??? ???
??? ??? super(message + id) ;
??? ???
??? ???
??? ???
??? }
???
??? /**
??? ?*
??? ?*/
??? private static final long serialVersionUID = 1L;
???
}
?
?
这样就自己创建了自己的异常类了,那么我们来怎么使用呢 ?
?
package endual.exception;
public class TestBaseException {
??? public static void main(String[] args) {
??? ???
??? ??? String message = "" ;
??? ??? int id = 1 ;
??? ??? TestBaseException tbe = new TestBaseException() ;
??? ??? tbe.testException(message, id) ;
??? ???
??? }
???
???
??? public void testException(String message, int id) {
??? ???
??? ??? if (id == 1) {
??? ??? ???
??? ??? ??? String messagex = "this is the erro message " ;
??? ??? ??? ParserBaseException pbe = new ParserBaseException(messagex); //创建这个异常类,然后
??? ??? ??? try {
??? ??? ??? ??? throw pbe ;? //然后抛出这个异常就可以了
??? ??? ??? } catch (ParserBaseException e) {
??? ??? ??? ??? // TODO Auto-generated catch block
??? ??? ??? ??? e.printStackTrace();
??? ??? ??? }
??? ??? ???
??? ??? }
??? ???
??? ???
??? ???
??? }
???
}
?
?
//怎么使用
1.我们要用自己定义的异常类,那么肯定的,我们需要自己定义这样的异常类的对象。
2.其二就是用关键词trow这个关键进行抛出这个异常对象就OK了。
3.在抛出前,你首先要定义一些自己的话,String message 这样就可以将自己说的饿话抛出去。
***********************************************************************************
?
有人说了,那我不想自己定义的话,直接像Sun的jar包自己定义的那种类型的,就是有异常自己会指定的抛出去怎么写呢?
那么你可以看源代码如果想要标准点。还有一点那么我来实现下怎么个默认抛出已经定义好的异常。
?
?
public class MyException1 extends Exception {
?
?
????????????? public MyException ()
{
????????????? String message = "这个是myexception1的异常 你看见了么" ;
????????? ? ?? super(message)
??? }
?
}
?
类似于这样,当然了,这样的异常因为你同一个无参数的构造方法在同一个类中只有一个,如果你想定义10个默认了的异常抛出语句的类,那么你要自己写10这样的类了。
?
?
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
?
虽然感觉到自己的有强大的处理错误和自己的学习的能力,但是看了好多的面试笔试的题目,我感觉都不行。
希望2012年找到自己希望的工作吧。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?