java---异常处理(1)

来源:互联网 发布:cg用什么软件 编辑:程序博客网 时间:2024/06/05 02:22

Java –异常处理

基本概念:

当出现程序无法控制的外部环境问题(用户提供的文件不存在,文件内容损坏,网络不可用。。)时,java就会用异常对象来描述,就是将异常用对象来描述。

 

两种方法处理异常

1, 在发生异常的地方直接处理

2, 将异常抛给调用者,让调用者处理

这样的代码就会比较健壮,结实。

 

异常分类

1, 检查行异常:java.lang.Exception

程序正确,但因为外在的环境条件不满足引发。例如:程序试图打开一个并不存在的文件或者并不存在的远程Socket端口。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

2, 运行期异常:java.lang.RuntimeException

这就意味着程序存在Bug,如:数组越界,0被除,传入参数不满足规范。。。。。,这类异常需要更改程序来避免,java编译器强制要求处理这类异常。

3, 错误:java.lang.Error

一般很少见,也很难通过程序解决,它可能源于程序的bug,但是一般更可能元环境问题,入内存耗尽,错误在程序中无需处理,而由运行环境处理。

代码

package com.panhui;

import java.io.*;

import java.net.Socket;

 

publicclassDemo10_9_1 {

 

    publicstatic void main(String[]args) {

        // TODO Auto-generated method stub

        //检查异常1.打开文件

        FileReaderfr=newFileReader("d:\\aa.text");

       

        //检查异常2,链接端口

        //链接一个端口号4567ip地址:192.168.12.12

        //会报错,因为编译器认为这个ip地址端口号可能错误。

        Sockets=newSocket("192.168.12.12",80);

       

        //运行错误,编译没错。

        inta = 4 / 0;

        System.out.println(a);

    }

 

}

异常处理:

1, try…..catch

2, //最大捕获

3,try{

4,           //可以将所有需要异常对象写到try中。

5,          FileReader fr =new FileReader("d:\\aa.text");

6,        } catch (Exceptione){

7,           //输出异常的信息,利于排除Bug

8,           e.printStackTrace();

9,        }

10,       //最小捕获,但是如果异常过多,那么就需要写很多的catch,一般执行完一个catch,程序就会停留在那里。

11,   try{

12,           FileReader fr =newFileReader("d:\\aa.text");

13,           } catch (FileNotFoundExceptione){

14,               //输出异常的信息,利于排除Bug

15,               e.printStackTrace();

16,               }

17,        

一旦出现异常,即try执行完后,跳到catch

截图:



2,finally

 

18,   try{

19,               //可以将所有需要异常对象写到try中。

20,             FileReader fr =new FileReader("d:\\aa.text");

21,           } catch (Exceptione){

22,               //输出异常的信息,利于排除Bug

23,               e.printStackTrace();

24,               }finally{

25,                    //这个语句块,不管有没有异常,多会被执行

26,                    //一般说,吧需要关闭的资源。【文件,链接,开辟的内存                什么的关掉】

         If(fr != null)

{

    Try{

     Fr.close();

}  ctach(Exceptione){

    e.printStackTrace();

}

}

27,               }

 

 

0 0
原创粉丝点击