java找不到符号的问题

importjava.util.Scanner;publicclassShiyan8_7{publicstaticvoidmain(Stringargs[]){Aa=ne... import java.util.Scanner;
public class Shiyan8_7{
public static void main(String args[]){
A a=new A();
int b;
Scanner reader= new Scanner(System.in);
b=reader.nextInt();
try{
a.f(b);
}
catch(zeroException x){
System.out.println(x.getMessage());
}
class zeroException extends Exception{
String message;
zeroException(int n){
message=n+"不是正数";
}
public String getMessage(){
return message;
}
}
class A{
public void f(int m) throws zeroException{
if(m<0){
zeroException ex=new zeroException(m);
throw(ex);
}
double number=Math.sqrt(m);
System.out.println(m+"的平方根是"+number);
}
}

}
}
错误:Shiyan8_7.java:11: 找不到符号
符号: 类 zeroException
位置: 类 Shiyan8_7
catch(zeroException x){
^
1 错误
Shiyan8_7.java:11: 找不到符号
符号: 类 zeroException
位置: 类 Shiyan8_7
catch(zeroException x){
^
1 错误

Shiyan8_7.java:11: 找不到符号
符号: 类 zeroException
位置: 类 Shiyan8_7
catch(zeroException x){
^
1 错误
展开
 我来答
coco22
高粉答主

2018-03-30 · 说的都是干货,快来关注
知道大有可为答主
回答量:254
采纳率:100%
帮助的人:6.8万
展开全部

方法一:

1、进入d:/web/wsh下: javac a.java;

2、然后退出wsh目录即进入d:/wsh下 javac wsh/b.java即可编译成功!

方法二:

1、通过使用javac -classpath(cp)参数;

2、进入d:/web /wsh下: javac a.java;

3、还是在d:/wsh/wsh下: javac -classpath d:/web/wsh b.java;

这样也可以编译成功!

以下方法都通过测试!

以下是javac编译的参数:

1、用法:javac <选项> <源文件> 

2、选项: 

1)-g:none 不生成任何调试信息;

2)-g:{lines,vars,source} 只生成某些调试信息;

3)-nowarn 不生成任何警告;

4)-verbose 输出有关编译器正在执行的操作的消息; 

5)-deprecation 输出使用已过时的 API 的源位置; 

6)-classpath <路径> 指定查找用户类文件的位置;

7)-cp <路径> 指定查找用户类文件的位置; 

8)-sourcepath <路径> 指定查找输入源文件的位置; 

9)-bootclasspath <路径> 覆盖引导类文件的位置; 

10)-extdirs <目录> 覆盖安装的扩展目录的位置;

11)-endorseddirs <目录> 覆盖签名的标准路径的位置; 

12)-d <目录> 指定存放生成的类文件的位置; 

13)-encoding <编码> 指定源文件使用的字符编码;

14)-source <版本> 提供与指定版本的源兼容性; 

15)-target <版本> 生成特定 VM 版本的类文件; 

16)-version 版本信息;

17)-help 输出标准选项的提要;

18)-X 输出非标准选项的提要;

19)-J<标志> 直接将 <标志> 传递给运行时系统。

jaramy1111
2017-06-14 · TA获得超过348个赞
知道小有建树答主
回答量:382
采纳率:100%
帮助的人:113万
展开全部
你把zeroException 和A俩个类定义到Shiyan8_7 类外边,没你这样的写法,内部类也不是这样写的,
public class Shiyan8_7 {
public static void main(String args[]) {
A a = new A();
int b;
Scanner reader = new Scanner(System.in);
b = reader.nextInt();
try {
a.f(b);
} catch (zeroException x) {
System.out.println(x.getMessage());
}

}
}
class zeroException extends Exception {
String message;

zeroException(int n) {
message = n + "不是正数";
}

public String getMessage() {
return message;
}
}
class A {
public void f(int m) throws zeroException {
if (m < 0) {
zeroException ex = new zeroException(m);
throw (ex);
}
double number = Math.sqrt(m);
System.out.println(m + "的平方根是" + number);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
samismiling
2017-06-06 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5605

向TA提问 私信TA
展开全部
import java.util.Scanner;
public class Shiyan8_7{
public static void main(String args[]){
A a=new A();
int b;
Scanner reader= new Scanner(System.in);
b=reader.nextInt();
try{
a.f(b);
}
catch(zeroException x){
System.out.println(x.getMessage());
}

}
}


class zeroException extends Exception{
String message;
zeroException(int n){
message=n+"不是正数";
}
public String getMessage(){
return message;
}
}
class A{
public void f(int m) throws zeroException{
if(m<0){
zeroException ex=new zeroException(m);
throw(ex);
}
double number=Math.sqrt(m);
System.out.println(m+"的平方根是"+number);
}
}

把最下面的两个括号移到两个类的上面

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
累惜存c
2017-06-15 · 超过32用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:33.1万
展开全部
其实就是找不到zeroException 这个类,这个类你定义过吗?还是哪里引用了?
看报错是dos命令行执行的java,这种错,编译就会报错
建议用个IDE(就是开发环境)吧,比如eclipse
如果你用了的话,在代码刚写出来的时候就会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫夜星空下等你
2017-06-15 · TA获得超过113个赞
知道小有建树答主
回答量:118
采纳率:80%
帮助的人:86.7万
展开全部

你把zeroException类放在了Shiyan8_7类里面了。

这主要是你写代码不规范造成的。

下面是正确的:

public class Shiyan8_7 {
    public static void main(String[] args) {
        A a=new A();
        int b;
        Scanner reader= new Scanner(System.in);
        b=reader.nextInt();
        try{
            a.f(b);
        }catch(zeroException x){
            System.out.println(x.getMessage());
        }
    }
}

class zeroException extends Exception{
    String message;
    zeroException(int n){
        message=n+"不是正数";
    }
    public String getMessage(){
        return message;
    }
}
class A{
    public void f(int m) throws zeroException{
        if(m<0){
            zeroException ex=new zeroException(m);
            throw(ex);
        }
        double number=Math.sqrt(m);
        System.out.println(m+"的平方根是"+number);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(32)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式