我在学校遇到问题。我是编程的新手,我需要一些帮助。请填写虚线:
import java.net.*;
import java.io.*
public class Test{
public static void main (String arg[]}
int x=0;
try {
ServerSocket s=new ServerSocket ( k );
s.close();
}
catch (..........................) {x++;}
catch(IOException e) {}
}
System.out.println( "Total "+ x); }
}
答案 0 :(得分:4)
在文档中查找ServerSocket的构造函数可以抛出的异常以及ServerSocket的close函数可以抛出的异常。其中一个可能是IOException,只需查看其他内容。
答案 1 :(得分:3)
提示:如果您使用现代IDE,它会告诉您。例如,只需在没有try和catch块的情况下编写
import java.net.*; import java.io.*
public class Test{
public static void main (String arg[]}
int x=0;
ServerSocket s=new ServerSocket ( k );
s.close();
System.out.println( "Total "+ x); }
}
IDE将为代码加下划线并给出建议,点击它并自动插入相应的例外。
答案 2 :(得分:2)
答案可以在您使用的ServerSocket constructor的JavaDoc中找到。
答案 3 :(得分:2)
您需要捕获(或声明您的方法抛出)每个由您调用的代码声明的Checked Exception。这些内容记录在JavaDoc和方法签名中。 <{1}}等未经检查的例外情况不需要被捕获。
答案 4 :(得分:0)
如果您使用IDE(例如Eclipse),则可以轻松解决这些问题以及其他许多问题,因为IDE会指出需要捕获的异常情况,从而避免您前往Javadoc页面,方便,可以直接从IDE中轻松访问。
@akf:这不是某些主要CS学校的教师的意见。例如,斯坦福大学的"Introduction to Computer Science | Programming Methodology"课程使用Eclipse的修改版本。我认为这是一种更好的学习语言的方法,避免了解决问题,编译,然后修复新问题的情况。这对新手来说可能是令人沮丧的。 IDE只是一种帮助编程的工具,它不会导致依赖性,如果没有它,它肯定不会阻止你进行编码。
但我同意,就使用java
或javac
而言,了解基本知识非常重要,以防万一你发现自己面前有一个终端。
答案 5 :(得分:0)
要编译代码,该行应为:
catch (StackOverflowError exc) {x++;}
答案 6 :(得分:0)
正如你在Henri评论中提到的那样,你必须在SecurityException或IllegalArgumentException之间做出选择。
这里的意义在于变量x。什么是x应该算什么?我的猜测是前者,但你的任务应该有一个暗示。
(顺便说一下:除文档中的IOException外,我只看到提及SecurityException)