黑马程序员技术交流社区

标题: 【求解答】 [打印本页]

作者: 班志国    时间: 2012-10-21 09:41
标题: 【求解答】
本帖最后由 班志国 于 2012-10-21 09:44 编辑

为啥定义两个构造函数呢 第一个构造函数 有什么作用呢 第一个调用的 是 throwable的空构造啊 有什么用啊 不明白【老毕面向对象第9-9自定义异常】

作者: 江苏孙浩    时间: 2012-10-21 09:43
话说 super后面的是方括号吗?不应该是 ()吗?
作者: 班志国    时间: 2012-10-21 09:46
江苏孙浩 发表于 2012-10-21 09:43
话说 super后面的是方括号吗?不应该是 ()吗?

由于暴风影音播放器的原因 导致()显示{}  
作者: 刘伟平    时间: 2012-10-21 09:50
本帖最后由 刘伟平 于 2012-10-21 09:51 编辑

你可以抛出不带参数的异常对象,如:throw new FuShuException();
也可以抛出在字符串说明的异常对象,如:throw new FuShuException("负数异常",-1);

如果不写空参数的构造函数,就不能抛出空参数异常对象了。
作者: 班志国    时间: 2012-10-21 09:58
刘伟平 发表于 2012-10-21 09:50
你可以抛出不带参数的异常对象,如:throw new FuShuException();
也可以抛出在字符串说明的异常对象,如: ...

不是有默认的构造函数吗
作者: 刘伟平    时间: 2012-10-21 10:04
班志国 发表于 2012-10-21 09:58
不是有默认的构造函数吗

需要注意构造函数的写法,如果不写构造函数,系统默认分配空参数构造函数,但是写了任意形式的构造函数,系统就不分配默认构造函数了。
作者: 彭旭文    时间: 2012-10-21 14:00
其实第一个构造函数是为了重写覆盖系统默认的空参数构造函数,第二个构造函数是为了重载构造函数,使得程序可以接受带参数的构造函数,从而抛出特定的自定义异常...{:soso_e100:}
作者: 杨从强    时间: 2012-10-21 22:17
七楼的哥们说的对。
作者: 陈琦    时间: 2012-10-21 22:29
异常类就和普通类一个样,按照普通类理解就可以了。
作者: 班志国    时间: 2012-10-22 09:50
彭旭文 发表于 2012-10-21 14:00
其实第一个构造函数是为了重写覆盖系统默认的空参数构造函数,第二个构造函数是为了重载构造函数,使得程序 ...

不写第一个 会怎么样啊
作者: 刘伟平    时间: 2012-10-22 11:14
班志国 发表于 2012-10-22 09:50
不写第一个 会怎么样啊

不写第一个不会有什么太大的问题,只是你不能使用
throw new FuShuException();
这样的方式抛出异常了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2