/** * @author Administrator * 功能:异常 */ package com.test; import java.io.*; import java.net.*; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub //检查异常编译器实现可以判断的异常1.打开文件 //要是找不到怎么办呢 //FileReader fr = new FileReader("D:\\aa.txt"); //2. 连接一个192.168.12.12 ip的端口号4567 //cmd下tracert追踪路由器 //cmd下查看路由表route 或者route print //cmd下netstat -an命令查看谁练过来了 //2. 连接一个192.168.12.12 ip的端口号4567 //unknown host 检查异常 //Socket s = new Socket("192.168.1.123",78); //运行异常 //除0 //int a = 4/0; //int b = 6/0; //数组越界异常 //int arr[] = {1,2,3}; //System.out.println(arr[234]); //外部环境异常 //异常和error有什么区别 //try catch捕获处理 或者抛出异常让调用你的上一层去处理 //异常处理 // try { // FileReader fr = new FileReader("D:\\aa.txt"); // // } catch (Exception e) { // //catch (Exception e)为最大捕获 // // TODO: handle exception // //把异常的信息输出,利于排除bug // e.printStackTrace(); // } //先进入应该被catch住的异常的入口块执行 FileReader fr = null; try { fr = new FileReader("D:\\bb.txt"); System.out.println("go on"); Socket s = new Socket("192.168.1.123",78); //后面的不执行,在出现异常的地方就终止执行代码,然后进入到catch语句 //如果你有多个catch语句,则进入匹配的异常的那个catch块 执行 } catch (FileNotFoundException e1) { //认为是什么异常就捕获什么异常,时最小捕获,FileNotFoundException为最小捕获 // TODO: handle exception //把异常的信息输出,利于排除bug System.out.println("测试"); e1.printStackTrace(); //处理 } catch (IOException e2) { // TODO: handle exception e2.printStackTrace(); //System.out.println("message="+e2.getMessage()); //执行该句系统异常退出后,finally将不会被执行 //System.exit(-1); //处理 }finally{//finally块一定会被执行 System.out.println("进入finally"); //这个语句块,不管有没有异常,都会被执行 //一般说,把需要关闭的资源,[文件,连接,内存 ] if(fr != null)//之前定义时null不等于null表示已打开 { //首先关闭文件关闭时也会抛异常 try { fr.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } } System.out.println("OK"); } }
时间: 2024-10-11 12:45:05