日期:2014-05-20  浏览次数:21169 次

初学Java, 遇到官员throws IOException的问题
书中例子,如下代码运行报错
public class DemoDoWhileTest {
public static void main(String[] args) throws IOException
{
char i=0;
do{//do-while 循环,打印出选课菜单
System.out.println("1:数学");
System.out.println("2:语文");
System.out.println("3:英语");
System.out.println("4:物理");
System.out.println("5:化学");
System.out.println("请输入选择的课程编号:");
i=(char)System.in.read();//获得用户输入
//使用switch语句来根据用户的输入判断输出结果
switch(i){
case '1':
System.out.println("您选择的是数学课程");
case '2':
System.out.println("您选择的是语文课程");
case '3':
System.out.println("您选择的是英语课程");
case '4':
System.out.println("您选择的是物理课程");
case '5':
System.out.println("您选择的是化学课程");
default:
System.out.println("没有你输入的课程号,请输入1~5之间的数字");
}
} while (i<'1'||i>'5');
}

}



Exception in thread "main" java.lang.NoClassDefFoundError: IOException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.getMethod0(Class.java:2694)
at java.lang.Class.getMethod(Class.java:1622)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: IOException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 6 more
对异常处理机制还没有学习过,请指导。

------解决方案--------------------
import java.io.IOException;

------解决方案--------------------
我没有猜错的话,lz是用cmd执行java代码的吧。开始初学习java的时候,这些被我们忽略掉是正常的,找到原因才好,lz没有学习到异常,我在这里跟lz分享一点:
1.在main方法中throws IOException,那么首先不管这个类有没有异常,这个类位于java.io包中,不在java。lang包中,由于楼主没有显示的导入这个类,所以虚拟机是无法解析到这个类的,所以报了一个类找不到异常。

lz需要手动导入这个类:
// 手动导入java.io.IOException这个类
import java.io.IOException;

public class TestIOException {
public static void main(String[] args) throws IOException {
char i = 0;
do {// do-while 循环,打印出选课菜单
System.out.println("1:数学");
System.out.println("2:语文");
System.out.println("3:英语");
System.out.println("4:物理");
System.out.println("5:化学");
System.out.println("请输入选择的课程编号:");
i = (char) System.in.read();// 获得用户输入
// 使用switch语句来根据用户的输入判断输出结果
switch (i) {
case '1':
System.out.println("您选择的是数学课程");
case '2':
System.out.println("您选择的是语文课程");
case '3':
System.out.println("您选择的是英语课程");
case '4':
System.out.println("您选择的是物理课程");
case '5':
System.out.println("您选择的是化学课程");
default:
System.out.println("没有你输入的课程号,请输入1~5之间的数字");
}
} while (i < '1' 
------解决方案--------------------
 i > '5');
}

}


建议:
1.楼主后期如果用ide去开发的话,比如用eclipse,这种没有导入类的问题会在编译器就知道错误了,很容易知道错在哪里,就能改正过来。
祝:学习进步!
------解决方案--------------------
引用:
import java.io.IOException;
+1