黑马程序员技术交流社区
标题:
Java中,构造函数抛出异常,对象会被创建吗?
[打印本页]
作者:
徐丹
时间:
2012-11-7 23:45
标题:
Java中,构造函数抛出异常,对象会被创建吗?
在new一个对象的时候,构造函数中抛出异常,那么这个对象会不会由于构造函数的中断而不被创建?
作者:
林晓泉
时间:
2012-11-8 00:04
这个肯定的 测试下
public class TestException extends Exception
{
TestException(String msg)
{
super(msg);
}
}
class Test
{
Test(int n) throws TestException
{
if(n<0)
throw new TestException("出错");
}
}
class Demo
{
public static void main(String[] args)
{
Test t =null;
try
{
t =new Test(1);
}
catch (Exception e)
{
System.out.println(e.toString());
}
System.out.println(t.toString());//如果出错时也创建对象则会返回对象引用,如果不创建对象则是空指针异常
}
}
复制代码
作者:
黑马周磊
时间:
2012-11-8 11:48
class Test
{
Test(int n) throws TestException
{
if(n<0)
throw new TestException("出错");
}
}
class Demo
{
public static void main(String[] args)
{
Test t =null;
try
{
t =new Test(1);
}
catch (Exception e) //您好,我今天也刚学习到这里,对于异常处理也学习的是懂非懂的,在看你的代码的时候,我在这里有个疑问可以问一下吗?
上面的代码已经抛出TestException异常。那这里的catch()为什么不直接接收TestException呢? 反而要去接收它的父类Exception来处理错误。
{
System.out.println(e.toString());
}
System.out.println(t.toString());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2