“Java异常处理机制”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
第26行: 第26行:
  
 
如:
 
如:
public class MainClass {
+
<nowiki>public class MainClass {
 
public static void main(String[] args) throws IOException {
 
public static void main(String[] args) throws IOException {
 
 
第43行: 第43行:
 
}
 
}
 
}
 
}
 
+
</nowiki>
我们在上述程序编写时,误将0作为了除数。
+
我们在上述程序编写时,误将0作为了除数,程序就会引发异常。
  
 
在运行程序时,上述的try-catch异常处理语句就会捕捉到这个异常,并把它打印出来。
 
在运行程序时,上述的try-catch异常处理语句就会捕捉到这个异常,并把它打印出来。
第67行: 第67行:
 
}</nowiki>
 
}</nowiki>
  
我们在上述程序编写时,误读取了
+
我们在上述程序编写时,误读取了一个并不存在的文件,程序就会引发异常。
 +
 
 +
在运行程序时,上述的try-catch异常处理语句就会捕捉到这个异常,并把它打印出来。
  
 
参考文档:
 
参考文档:
  
 
[1] http://www.runoob.com/java/java-exceptions.html
 
[1] http://www.runoob.com/java/java-exceptions.html

2018年4月26日 (四) 08:03的版本

什么是异常

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

比如说,你的代码少了一个分号,那么只说明是语法错误,不算异常;如果你写程序时用0做了除数,如System.out.println(11/0),或者是读取一个并不存在的文件,导致程序偏离了正常的运行轨迹、执行不下去了,这就叫异常。

异常发生的原因有很多,通常包含以下几大类:

   用户输入了非法数据。
   要打开的文件不存在。
   网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。

异常的处理

异常怎么来处理呢 ?非常简单,可以将可能发生异常的语句放到try-catch语句当中来处理。

try
{
   // 位置1
}catch(ExceptionName e1)
{
   //Catch 块
}

把你想写的代码放到位置1当中,如果有异常发生,程序就会及时捕捉到。

如:

public class MainClass {
	public static void main(String[] args) throws IOException {
		
		
		int i = 10;
                int j = 0;
                try{
                     int temp = i/j;                        //此处会产生异常
                     System.out.println("计算结果:"+temp);
                }catch(Exception e){
                     System.out.println("出现异常:"+e);    //打印异常信息
                     //e.printStackTrace();            //打印完整的异常信息
                }
                System.out.println("计算结束");
                 
	}
}

我们在上述程序编写时,误将0作为了除数,程序就会引发异常。

在运行程序时,上述的try-catch异常处理语句就会捕捉到这个异常,并把它打印出来。

 出现异常:java.lang.ArithmeticException: / by zero

再如:文件的读取

public class MainClass {
	public static void main(String[] args) throws IOException {
                //把内容显示在屏幕上
		try(FileReader fr= new FileReader("reader2.txt")){
					char[] c=new char[20];
					int hasRead=0;
					while((hasRead=fr.read(c))!=-1) {
						System.out.print(new String(c,0,hasRead));
					}
		}catch (Exception e) {
					System.out.println("出现异常:"+e); 
					//e.printStackTrace();			
		}
       }
}

我们在上述程序编写时,误读取了一个并不存在的文件,程序就会引发异常。

在运行程序时,上述的try-catch异常处理语句就会捕捉到这个异常,并把它打印出来。

参考文档:

[1] http://www.runoob.com/java/java-exceptions.html