• Java异常处理之try-catch-finally


    /**
     * @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");        
        }
    }
  • 相关阅读:
    YYControls
    JMS基础教程
    .NET牛人应该知道些什么?
    我(zhangxz)的博客园
    Java多线程 sycronize - wait -notify - notifyall
    .NET牛人应该知道些什么_答案(本答复不是标准答案,敬请兄弟们补充更正)
    HDU OJ 动态规划46题解析
    HDU OJ分类
    JS生成二维码
    C# 往Datatable中添加新行的步骤
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/5347795.html
Copyright © 2020-2023  润新知