• 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");        
        }
    }
  • 相关阅读:
    css如何去掉select原始样式
    Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL
    eclispe+maven+ssm+sql_server/mysql配置
    解决Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0问题
    eclipse alt+/智能提示错误问题
    去除input边框 input去除边框 去除input获取焦点时的蓝色外边框
    java对sql server的增删改查
    java连接sql server 2008
    卸载sql server 2008
    FTP的vsftpd.conf含义
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/5347795.html
Copyright © 2020-2023  润新知