A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑强强 中级黑马   /  2012-4-13 09:57  /  1612 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Person
{
        public void checkName(String name)//这个地方为什么不需要声明异常啊??        {
                //if (name.equals("lisi"))
                if("lisi".equals(name))//if(name!=null&&name.equals("lisi"))
                        System.out.println("yes");
                else
                        System.out.println("no")'
        }
}

main()
{
        Person p=new Person();
        p.checkName(null);
}

5 个回复

正序浏览
null 是空指针异常,属于RuntimeException 运行时异常可以不用声明。

比如刚开始接触异常时,那个除0的算术异常,不是也没声明吗,
那是java虚拟机检测到后,自动抛出的,属于内部定义好的异常
回复 使用道具 举报
马强 发表于 2012-4-13 10:27
class Person
{
        public void checkName(String name)//这个地方为什么不需要声明异常啊?? (我明 ...

对啊对啊,就是这个意思啊
回复 使用道具 举报
class Person
{
        public void checkName(String name)//这个地方为什么不需要声明异常啊?? (我明白你的意思,是说name传进去null后是空指针异常)      
     {                                                                                                           (这里可以抛runtime,也可以把"lisi”和name换个位置)
                //if (name.equals("lisi"))
                if("lisi".equals(name))//if(name!=null&&name.equals("lisi"))
                        System.out.println("yes");
                else
                        System.out.println("no")'
        }
}

main()
{
        Person p=new Person();
        p.checkName(null);
}
回复 使用道具 举报
这代码没有异常 就不抛啊  不是什么代码都有异常的
回复 使用道具 举报
class Person
{
        public void checkName(String name)//这个地方为什么不需要声明异常啊??        {
                //if (name.equals("lisi"))
                if("lisi".equals(name))//if(name!=null&&name.equals("lisi"))
                        System.out.println("yes");
                else


你这个程序根本就不会抛异常,当然就不要声明异常

如果抛的话,那也只可能是RuntimeException,这个异常也是不用声明就可以直接用的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马