Java非常处理及其操纵[Java编程]
本文“Java非常处理及其操纵[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 来记录弊端.编译器错误是在奉告您,需求更改代码来办理这个潜在的问题.在 JDK API 文档中,可以看到一样的信息.我们可以看到 readLine 办法,如图 1 所示.
图 1. BufferedReader 类的 readLine 办法的 JDK API 文档
由图 1 可知,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 代码开辟中不能被轻忽.
以上是“Java非常处理及其操纵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |