在eclipse中运行java代码如果出现错误没有具体的解决方案,比如在哪行出现什么错误

在eclipse中运行java代码如果出现错误没有具体的解决方案,比如在哪行出现什么错误doc命令中却会显示,哪行出错了,怎么解决如图。

因为你在ExceptionDemo2类的divisionmethod方法中抛出异常,所以在主函数中调用这个方法时需要用try-catch捕获异常,打印异常信息并做相应的处理.

完整的Java程序如下(改动的地方见注释)

class ExceptionDemo{

 public static void main(String[] args) {

  ExceptionDemo2 ED=new ExceptionDemo2();

  try{

   int sum=ED.divisionmethod(4,0);

   System.out.println(sum);

  }catch(Exception e){                //用try-catch捕获异常

   System.out.println("出现异常:"+e);//打印异常信息

   e.printStackTrace();            //打印完整的异常信息

  }

 }

}

class ExceptionDemo2{

 public int divisionmethod(int a,int b) throws Exception{

  return a/b;

 }

}

追问

这是用你的告诉我的捕获处理方式。

可还是没有像doc一样报出具体位置,哪里错了的中文显示,不知道会不会是eclipse不支持中文。

doc因为环境比较高级所以能显示出来。

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-09-20
Eclipse不是告诉你哪行编译出错了,你把鼠标放到出错的地方,按一下Ctrl+1,会出现快速解决的选项。
第2个回答  2018-09-20
每个IDE都要自己擅长的地方,这种情况我一般的做法有两种:
1、加异常捕获,通过输出错误信息来判断,错误信息中提示的行的位置,应该就在错误代码附近;
2、通过IDE工具,就是直接通过输出错误窗口句判断,再加上IDE工具的提示。
其实,你编码久了,有些问题都是自己写代码疏忽造成的,一般一眼都能看到,若看不到的问题,也是短时间可能无法解决的问题。比如自己的对用法的掌握还不够,或是运行环境问题等等。
希望以上对你有帮助追问

可能是我提问标点符号没有打好,导致你们读问题读错意思了,不过谢谢,我知道需要去捕获,如果不捕获的就抛出,后面我是写了捕获的,但还是不会显示具体行号,我说的是doc的提示比较清楚一些,而ide的显示不清楚。

你可以看看我那二张图片同一段代码运行,在控制台输出的提示,明显没有doc里面提示的全呢。

你看doc告诉你要么就声明,要么就捕获,还告诉你是4/0不允许,然后还告诉你第几行,eclipse就没有显示的这样清楚。

第3个回答  2018-09-18
很明显是第6行,一个大红线,和大红叉,我这种不会的人都知道追问

大哥我怎么会不知道,你还不如下面那位大哥的回答,你看清楚问题了没有,我是说为什么会有这种差别不是说这是什么错误,不会就不要回答。

追答

怎么没写,unresolved compilation problem 未解析的编译错误
unhandled exception type exception,存在需要强制处理的异常
at ExceptionDemo.main(ExceptionDemo.java 6) 在ExceptionDemo.java 第6行

追问

没有doc的全好吧,doc直接告诉你4/0这行错误,要么在主方法声明要么捕获,eclipse只告诉你是什么错误,没有告诉你具体解决办法。

追答

感觉可以在at ExceptionDemo.main(ExceptionDemo.java 6) 这里点一下,应该就会链接到对应的 int sum = ED.divisionmethod(0,4); 了,颜色都和别的不一样。查了下eclipse,把鼠标放到红叉上会提示修改方法

追问

没错我在at ExceptionDemo.main(ExceptionDemo.java 6) 点击一下的确会跳转到具体代码块,然后到sum=ed.divisionmethod这里他还会告诉你不能4/0,但是没有告诉你主函数继续声明,或者是捕获这个异常进行处理,你看一下我那二张图的报错结果哪个更简单明了,还有下你下面那位敲了很多代码的哥们我和他的交流。

我不是说为什么报错也不是说不知道怎么定位报错的地方,而是说eclipse的窗口报错信息不完整,而doc的完整很多,网上查了一些说doc和eclipse控制台的运行结果不一致是因为eclipse控制台采用的是多线程,还有eclipse对中文支持不是很好,cmd就不一样了。

eclipse代码错误提示该怎么设置?
1、首先找到不提示错误的工程项目,在项目上鼠标右键,选择Properties,如下图:2、在打开的属性设置面板中左边栏中找到Java Compiler--Building弹出框如下图:3、在弹出框的右边先勾选Enable project specific settings,Abort build when build path errors occur,再将incomplete build path 和circular depen...

Eclipse 运行JAVA程序报错
在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.8,也就是与jvm一致的版本

用eclipse运行java程序出现错误提示error:A JNI error has occureed...
编译版本与运行版本不一致导致的,在窗口->首选项里面设置:就可以了。

Java的eclipse为什么运行异常
可能配置的内存太小,或者系统本身内存不够了,比如以下配置成这样:-Xms128m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -Dorg.eclipse.swt.browser.DefaultType=mozilla 修改以下xms和xmx就可以正常启动了。2、之前错误的关闭,workspace的问题:这个问题比较棘手,因为很难找到问题出再哪,...

eclipse点击运行出现了这种错误是什么情况
1.环境变量没配置 2.eclipse和jdk版本位数不一致,要同是32位或者64位(注意32位机子只能使用32位的,64位可以兼容使用32位和64位的)解决办法:1.配置环境变量:第一步:右键“我的电脑”,点击“属性”第二步:点击“高级系统设置”,点击“环境变量(N)”第三步:在“系统变量(S)”下新建2个变量,...

我今天在eclipse上编写了一个java聊天程序的客户端,但是老是出现编译错...
原因是使用了 content assist 功能,eclipse会去查找java的源代码,首先在本地找,然后到internet上找。本地默认是没有java的源代码。computing additional info表示在搜索internet上的java的源代码 解决办法:1. 找到JDK安装目录下的src.zip文件;2. 打开eclipse: Window菜单->Preference->Java->Installed ...

运行eclipse时出现了这个错误,什么情况?怎么解决?
解决步骤:1.查看jdk的版本号及位数 方法如下:cmd下输入以下命令:java -version 此时如果没有显示jdk的位数,则表示此jdk为32位 如果显示Java HotSpot(TM) 64-Bit,则表示此jdk的版本为64位 2.查看eclipse的版本及位数 方法如下:打开eclipse解压目录下,找到eclipse.文件 然后使用记事本打开 如果是win...

eclipse运行错误时如何看错误位置?
运行错误的话,eclipse下面不是有错误提示吗?提示后面有行号啊。比如:Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(Unknown Source)at java.util.ArrayList.get(Unknown Source)at test.newtest.main(newtest.java:18)这...

eclipse java 底部的那个显示运行结果的框被我一不小心关掉了,如何打 ...
那是eclipse种的Console控制台,重新显示方式有以下几种:1、方法一:快捷键:ALT+SHIFT+Q 2、方法二:点击工具栏上的“window”输入reset perspective 3、方法三:①选择上方工具栏“Window”功能栏目。②出现下拉菜单选择“show View”功能。③出现二级下拉菜单选择“console”功能 ...

java代码的运行时错误问题,怎么解决
你说的java是不是Eclipse编译器如果是用Eclipse编译器进行编辑的话上面会有一个packageXX;这样就不能正常通过dos编译了要用dos编译的话需要把Packagexx;删掉

相似回答