如何解决处理Java自定义异常
更新:
我已经修复了语法错误并删除了异常处理,并且我得到了完全相同的错误消息(当然,不同的行号):
class Point {
public Point (int x,int y) {
this.x = x;
this.y = y;
}
public void displayPointPosition() {
System.out.println("Position: " + x + " " + y);
}
private int x,y;
}
public class Exinfo2 {
public static void main(String args[]) {
Point a = new Point(1,4);
a.displayPointPosition();
a = new Point(-3,5);
a.displayPointPosition();
}
}
这确实是一个初学者的错误,我的代码编辑器(Visual Studio Code)没有突出显示任何错误...
==============
我正在学习Java,现在正在尝试处理自定义异常,但是没有成功。编译代码时,我收到各种错误消息,甚至从书本中复制的示例中也有问题,因此似乎可能不仅仅是代码...
这是我要使之工作的示例,并且我收到了编译器消息:
"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
at Exinfo2.main(Point.java:23)".
这是代码:
class Point {
public Point (int x,int y) throws ErrConst {
if ( (x < 0) || (y < 0) ) {
throw new ErrConst ("Constructor error:" + x + " " + y);
}
this.x = x;
this.y = y;
}
public void displayPointPosition() {
System.out.println("Position: " + x + " " + y);
}
private int x,y;
}
class ErrConst extends Exception {
ErrConst(String mes) {
super(mes);
}
}
public class Exinfo2 {
public static void main(String args[]) {
try {
Point a = new Point(1,4);
a.displayPointPosition();
a = new Point(-3,5);
a.displayPointPosition();
}
catch (ErrConst e) {
System.out.println(e.getMessage());
System.exit(-1);
}
}
}
我确定这是非常基本的,但这让我很头疼,所以我希望一种编码器可以花几分钟的时间来帮助我...:-)
提前谢谢! :-)
解决方法
当我尝试运行它时,您的代码运行良好。
但是,根据您发布的异常,您似乎已将文件另存为Exinfo2
。
您在同一文件中有几个类,但是您的公共类称为Exinfo2.java
。在Java中,文件名和公共类的名称必须相同,所以可能是问题所在。
尝试将文件另存为javac Exinfo2.java
java Exinfo2
。
但是,从编译器获得的错误消息很奇怪。通常,您会收到错误消息“类Exinfo2是公共的,应该在名为Exinfo2.java的文件中声明”。看起来您收到的错误是来自Eclipse编译器,因此Visual Studio Code插件可能正在使用该编译器,而不是常规的编译器。尝试从命令行这样编译它:
select item_number
from table1
order by charindex(',',item_number + ',' + '335484,105666,105681,338706,144516' + ',')
offset 0 rows fetch next 30 rows only;
,
我认为在您的Point类中。方法 displayPointPosition .. PrintStream找不到您的消息。 您可以尝试更改它吗。.为此: System.out.println(“ Position:” + x +“” + y);
致谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。