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");
    }
}
时间: 2024-10-11 12:45:05

Java异常处理之try-catch-finally的相关文章

浅谈Java throw, throws, try catch异常处理

1.throws关键字通常被应用在声明方法时,用来指定可能抛出的异常.多个异常可以使用逗号隔开.当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象.如下面例子所示: public class Shoot {   创建类 static void pop() throws NegativeArraySizeException { //定义方法并抛出NegativeArraySizeException异常 int [] arr = new int[-3];//创建数组 } public

“崩溃了?不可能,我全 Catch 住了” | Java 异常处理

前言 今天我们来讨论一下,程序中的错误处理. 在任何一个稳定的程序中,都会有大量的代码在处理错误,有一些业务错误,我们可以通过主动检查判断来规避,可对于一些不能主动判断的错误,例如 RuntimeException,我们就需要使用 try-catch-finally 语句了. 有人说,错误处理并不难啊,try-catch-finally 一把梭,try 放功能代码,在 catch 中捕获异常.处理异常,finally 中写那些无论是否发生异常,都要执行的代码,这很简单啊. 处理错误的代码,确实并

Java异常处理机制:try...catch...的执行流程

Java异常处理机制:try...catch...的执行流程 在项目中遇到try...catch...语句,因为对Java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解.所以现在来总结Java异常处理机制的处理流程: 1.异常处理的机制如下: 在方法中用 try... catch... 语句捕获并处理异常,catch 语句可以有多个,用来匹配多个不同类型的异常. 对于处理不了的异常或者要转型的异常,在方法的声明处通过 throws 声明异常,通过throw语句拋出异常,即由上层的调用方法

深入理解Java异常处理机制

1. 引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中的那么简单.听话.不信?那你看看下面的代码,"猜猜"它执行后的结果会是什么?不要往后看答案.也不许执行代码看真正答案哦.如果你的答案是正确,那么这篇文章你就不用浪费时间看啦. <span style="background-color: rgb(255, 255, 255

Java异常处理机制的秘密

一.结论 这些结论你可能从未听说过,但其正确性是毋庸置疑的,不妨先看看: 1.catch中throw不一定能抛回到上一层,因为finally中的return会抑制这个throw2.finally中throw一定能抛回上一层,因为此时其后的return不会被执行到(throw中断了正常的顺序流)3.在try/catch中return并不会直接返回上一层,而是先执行finally再返回 二.一段小程序 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

项目中java异常处理

一.java异常类介绍. Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类. 有一篇比较好的blog,http://blog.csdn.net/hguisu/article/details/6155636 介绍java异常. 二.异常处理方式. 在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常. 三.程序中使用. 2种处理方式 1.throw new 异常  在方法体上写throws

java异常处理和设计

在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻找出错的根源?但是如果一个项目异常处理设计地过多,又会严重影响到代码质量以及程序的性能.因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述Java异常机制最基础的知识,然后给出在进行Java异常处理设计时的几个建议. 若有不正之处,请多多谅解和指正,不胜感激. 请尊重作者劳动成果,转载请标明

Java异常处理 “受控(checked)”的异常

示例程序: public class TestThrows { public static void main(String[] args) { FileInputStream fis = new FileInputStream("a.txt"); } } 为什么以上程序完全符合Java语法规范,但是却会报错呢? 修正: public class TestThrows { public static void main(String[] args) throws FileNotFoun

关于java异常处理

异常处理: java中的异常处理机制主要依赖于try,catch,finally,throw,throws五个关键字.其中, try关键字后紧跟一个花括号括起来的代码块(花括号不可省略)简称为try块.里面放置可能发生异常的代码. catch后对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块.多个catch块后还可以跟一个finally块. finally块用于回收再try块里打开的物理资源,异常机制会保证finally块总被执行. throws关键字主要在方法签名中使用

Java异常处理错误

Java异常处理错误 发现错误的最佳时期是在编译阶段,也就是在你运行程序之前.然而,编译期间并不能找出所有的错误,余下的问题必须在运行阶段解决.这就需要错误源通过某种方式把适当的信息传给某个接收者,该接收者知道如何处理这个问题. Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型,可靠的程序的生成,并且通过这种方式可以使你更加自信:你的应用中没有未处理的错误. 异常这个词有我对此感到意外的意思.问题出现了,你也许不清楚该如何处理,但你的确知道不该置之不理:你要停下来,看看是不是有