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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

王成龙

初级黑马

  • 黑马币:18

  • 帖子:9

  • 精华:0

/*
*/
public class TestException
{
        public static void main(String [] args)
        {
                try
                {
                int result=new Test().devide(3,0);
                System.out.println("the result is :" +result);
                }
                catch(Exception e)
                {
                        System.out.println(e.getMessage());
                }
                System.out.println("program is running here ,that is normal !");
        }
}
class Test
{
        public int devide(int x,int y)
        {
                return x/y;
        }
}

编译错误提示如下:  求解决
Yichang.java:3: 错误: 类TestException是公共的, 应在名为 TestException.java 的文
件中声明
public class TestException
        ^
1 个错误

点评

因为TestException类是public的,你的源文件名必须是:TestException.java  发表于 2014-8-18 14:09

17 个回复

倒序浏览
你这两个类是不是写在同一个java文件中?
回复 使用道具 举报
如果是的,你把public换到Test这个类前面试试!
回复 使用道具 举报
华谦 来自手机 中级黑马 2014-8-18 14:11:49
板凳
把你的文件名改成类名试试
回复 使用道具 举报
fxwb2005 发表于 2014-8-18 14:08
你这两个类是不是写在同一个java文件中?

是在一个文件中的
回复 使用道具 举报
华谦 发表于 2014-8-18 14:11
把你的文件名改成类名试试

文件名改成类名 Test,也不行
回复 使用道具 举报
调试好了,把public class TestException   前面的public 删掉就行了。
回复 使用道具 举报
你所说的问题我看不出来
回复 使用道具 举报
华谦 中级黑马 2014-8-18 14:44:21
9#
王成龙 发表于 2014-8-18 14:22
是在一个文件中的

TestException改成这个
回复 使用道具 举报
danmo 中级黑马 2014-8-18 15:09:44
10#
把(3,0)换一下,好像是除数为零异常
回复 使用道具 举报
会飞De石头 发表于 2014-8-18 14:30
你所说的问题我看不出来

你在学java吗
回复 使用道具 举报
danmo 发表于 2014-8-18 15:09
把(3,0)换一下,好像是除数为零异常

除数不为0,也是这样的提示。   有人和我说是类的权限问题,一个类只能有一个public修饰  文件名要和类名一样好像
回复 使用道具 举报
9楼的回复你试了没
回复 使用道具 举报
怪事了?为什么我的可以运行,你的却编译错误呢?
回复 使用道具 举报

必须是  我的运行的是jdk1.7  编译运行没有问题
回复 使用道具 举报
danmo 发表于 2014-8-18 15:09
把(3,0)换一下,好像是除数为零异常

他已经用 Exception 捕捉了异常 ,,与除数是不是0无关
回复 使用道具 举报
不再上网 发表于 2014-8-21 01:17
怪事了?为什么我的可以运行,你的却编译错误呢?

你的文件名是什么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马