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

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“==什么是异常== 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代…”)
 
第68行: 第68行:
  
 
我们在上述程序编写时,误读取了
 
我们在上述程序编写时,误读取了
 +
 +
参考文档:
 +
 +
[1] http://www.runoob.com/java/java-exceptions.html

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

什么是异常

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

比如说,你的代码少了一个分号,那么只说明是语法错误,不算异常;如果你写程序时用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();			
		}
       }
}

我们在上述程序编写时,误读取了

参考文档:

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