本帖最后由 xiaochen33520 于 2014-1-16 13:09 编辑
关于异常,必须得说继承。异常分为两大类,一个是Error,一个是Exception.
Error不是我们所处理的。而Exception是我们可以处理的。
Exception又分为两大类,一个是编译时检测的异常,一个是在程序运行期间出现的异常。
自定义异常必须继承Exception或者RuntimeException。其实就是将这问题封装成一个类,让这个类继承异常体系,继承以后throws和throw就可以对其异常进行声明与捕捉,声明就是我们所说的抛出。而捕捉就是
try{}catch(){};
你的问题就是关于异常参数的,问题被封装在类中,自然而然类是有构造函数的,你往里面传入参数是调用有参构造函数,如果不传入参数则调用无参构造函数。如果是自定义异常,那么这个类必须继承异常体系,如果想往你们传入异常描述信息,那么必须自定义一个有参的构造函数,因为这个类是继承异常体系的,那么这个类自然而然就有父类,在有参构造函数中调用super(msg),msg是你的异常描述的参数,直接把父类异常的构造函数拿过来用就OK。
关于在控制台打印信息这个问题与你无关,是java自己做的事情,不需要定义的,如果你想自己打印信息就try{}catch(){}吧,在catch代码块中打印自己的异常信息到控制台中。catch(){}类似方法,把异常对象写在catch的圆括号中,比如
try
{
//代码;
}
catch(异常类 变量名)
{
System.out.println(变量名);//自动调用toString();当然也可以写成:变量名.toString(); 这个就可以打印异常信息。
System.out.rpintln(变量名.getMessage());//这个方法也可以打印异常信息。
变量名.printStackTrace();//这个方法也可以打印异常信息。
}
如果你真相做深度了解,建议你看看jdk中的src.zip解压包,和api。解压包是封装的代码类。api是对解压包中的类和方法做说明的。你自己看看吧。
|