|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
Java非常处置引出
假定您要编写一个Java程序,该程序读进用户输出的一行文本,并在终端显现该文本。
程序以下:
1 import java.io.*;
2 public class EchoInput {
3 public static void main(String args[]){
4 System.out.println("Enter text to echo:");
5 InputStreamReader isr = new InputStreamReader(System.in);
6 BufferedReader inputReader = new BufferedReader(isr);
7 String inputLine = inputReader.readLine();
8 System.out.println("Read:" + inputLine);
9 }
10 }
剖析下面的代码,在EchoInput类中,第3行声了然main办法;第4行提醒用户输出文本;第5、6行设置BufferedReader对像毗连到InputStreamReader,而InputStreamReader又毗连到尺度输出流System.in;第7行读进一行文本;第8行用尺度输入流System.out显现出该文本。
外表看来下面的程序没有成绩,但实践上,EchoInput类完整大概呈现成绩。要在挪用第7行的readLine办法时准确读取输出,这几种假定都必需建立:假定键盘无效,键盘能与盘算机一般通讯;假定键盘数据可从操纵体系传输到Java假造机,又从Java假造机传输inputReader。
年夜多半情形下上述假定都建立,但不尽然。为此,Java接纳非常办法,以应对大概呈现的毛病,并接纳步骤举行改正。在本例中,若试图编译以上代码,将看到以下信息:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type IOException
at EchoInput.main(EchoInput.java:7)
从中能够看到,第7行挪用readLine办法大概堕落:若果然云云,则发生IOException来纪录妨碍。编译器毛病是在告知您,必要变动代码来办理这个潜伏的成绩。在JDKAPI文档中,能够看到一样的信息。我们能够看到readLine办法,如所示。
.BufferedReader类的readLine办法的JDKAPI文档
<br>
由可知,readLine办法偶然发生IOException。怎样处置潜伏的妨碍?编译器必要“捕捉”或“声明”IOException。
“捕捉(catch)”指当readLine办法发生毛病时截获该毛病,并处置和纪录该成绩。而“声明(declare)”指毛病大概激发IOException,并关照挪用该办法的任何代码:大概发生非常。
若要捕捉非常,必需增加一个特别的“处置代码块”,来吸收和处置IOException。因而程序改成以下:
1 import java.io.*;
2 public class EchoInputHandle {
3 public static void main(String args[]){
4 System.out.println("Enter text to echo:");
5 InputStreamReader isr = new InputStreamReader(System.in);
6 BufferedReader inputReader = new BufferedReader(isr);
7 try{
8 String inputLine = inputReader.readLine();
9 System.out.println("Read:" + inputLine);
10 }
11 catch(IOException exc){
12 System.out.println(“Exception encountered: ” + exc);
13 }
14 }
15 }
新添的代码块包括关头字try和catch(第7,10,11,13行),暗示要读取输出。若乐成,则一般运转。若读取输出时毛病,则捕捉成绩(由IOException对象暗示),并接纳响应措施。在本例,接纳的处置体例是输入非常。
若禁绝备捕捉IOException,仅声明非常,则要出格指定main办法大概堕落,并且出格申明大概发生IOException。因而程序改成以下:
1 import java.io.*;
2 public class EchoInputDeclare {
3 public static void main(String args[]) throws IOException{
4 System.out.println("Enter text to echo:");
5 InputStreamReader isr = new InputStreamReader(System.in);
6 BufferedReader inputReader = new BufferedReader(isr);
7 String inputLine = inputReader.readLine();
8 System.out.println("Read:" + inputLine);
9 }
10 }
从下面的这个复杂的例子中,我们能够看出非常处置在Java代码开辟中不克不及被无视。
<p>
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 |
|