Java异常处理之throws与声明方法抛出异常

简介: 笔记

一、throws与声明方法抛出异常


在一个方法中如果能够处理异常,则需要捕获并处理。但是本方法没有能力处理该异常,捕获它没有任何意义,则需要在方法后面声明抛出该异常,通知上层调用者该方法有可以发生异常。

代码如下:

import java.io.*;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
//throws与声明方法抛出异常
public class HelloWorld {
    public static void main(String[] args) {
        try {
            Date date = readDate();
            System.out.println(date);
        } catch (ParseException e) {
            System.out.println("处理ParseException");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("处理IOException");
            e.printStackTrace();
        }
    }
//    事实上有三个异常IOException, ParseException, FileNotFoundException。由于FileNotFoundException是属于IOException,异常所以只声明IOException异常即可
    public static Date readDate() throws IOException, ParseException {
//        自动资源管理
        FileInputStream readfile = new FileInputStream("raedme.txt");
        InputStreamReader ir = new InputStreamReader(readfile);
        BufferedReader in  = new BufferedReader(ir);
//        读取文件中的一行数据, 调用BufferedReader输入流的readLine()方法可能会发生IOException异常
        String str = in.readLine();
        if(str == null){
            return null;
        }
//            调用SimpleDateFormat()方法可能会发生ParseException异常
        DateFormat df  = new SimpleDateFormat("yyyy-MM-dd");
        java.util.Date date = df.parse(str);
        return date;
    }
}

如果声明抛出的多个异常类之间有父子关系,可以只声明抛出父类。但如果没有父子关系 情况下,最好明确声明抛出每一个异常,因为上层调用者会根据这些异常信息进行相应的处理。

上述代码有三个异常FileNotFoundException、IOException和 ParseException,由于FileNotFoundException属于IOException异常,所以只声明IOException和 ParseException就可以了。



相关文章
|
9月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
409 98
|
9月前
|
安全 Java 编译器
驾驭Java异常处理:从新手到专家的优雅之道
驾驭Java异常处理:从新手到专家的优雅之道
370 59
|
Java 编译器 数据库连接
Java异常处理:写出更健壮的代码
Java异常处理:写出更健壮的代码
321 0
|
11月前
|
Java 数据库 C++
Java异常处理机制:try-catch、throws与自定义异常
本文深入解析Java异常处理机制,涵盖异常分类、try-catch-finally使用、throw与throws区别、自定义异常及最佳实践,助你写出更健壮、清晰的代码,提升Java编程能力。
|
设计模式 Java 开发者
Java中的异常处理:理解与实践
【10月更文挑战第42天】在Java的世界中,异常处理是每个开发者必须面对的挑战。它就像是一场不可预知的风暴,可能会在任何时候突然降临,打乱我们的计划。但是,如果我们能够掌握正确的处理方法,这场风暴也可以变成推动我们前进的力量。本文将带你深入理解Java中的异常处理机制,通过代码示例,我们将一起学习如何捕获、处理和预防异常,让你的程序在面对任何挑战时都能保持稳健和优雅。
|
安全 Java 数据库连接
Java中的异常处理:理解与实践
在Java的世界里,异常处理是维护代码健壮性的守门人。本文将带你深入理解Java的异常机制,通过直观的例子展示如何优雅地处理错误和异常。我们将从基本的try-catch结构出发,探索更复杂的finally块、自定义异常类以及throw关键字的使用。文章旨在通过深入浅出的方式,帮助你构建一个更加稳定和可靠的应用程序。
265 5
|
Java 程序员 数据库连接
Java中的异常处理:理解与实践
【10月更文挑战第29天】在Java编程的世界里,异常像是不请自来的客人,它们可能在任何时候闯入我们的程序宴会。了解如何妥善处理这些意外访客,不仅能够保持我们程序的优雅和稳健,还能确保它不会因为一个小小的失误而全盘崩溃。本文将通过浅显易懂的方式,带领读者深入异常处理的核心概念,并通过实际示例展现如何在Java代码中实现有效的异常管理策略。
|
Java 开发者
Java中的异常处理:理解与实践
【10月更文挑战第20天】在Java编程的世界中,异常处理是一个不可忽视的重要话题。它不仅关乎代码的健壮性,更是程序设计中体现开发者预见性和解决问题能力的关键所在。本文将通过深入浅出的方式,带领读者探索Java异常处理的核心概念、实践方法以及如何优雅地应对各种异常情况,让你的代码在面对意外时也能从容不迫。
155 1
|
安全 Java UED
Java中的异常处理:理解与实践
【10月更文挑战第8天】在Java的世界里,异常处理是维护代码健壮性的守护神。本文将带你深入探索Java的异常处理机制,从基础的try-catch语句到高级的自定义异常,再到最佳实践和性能考量,我们将一起学习如何优雅地处理程序中的错误和异常情况。准备好,让我们一起迎接挑战,确保你的Java代码既安全又高效!
|
Java 程序员 数据库连接
Java中的异常处理机制:理解与实践
本文将深入探讨Java语言中异常处理的核心概念、重要性以及应用方法。通过详细解析Java异常体系结构,结合具体代码示例,本文旨在帮助读者更好地理解如何有效利用异常处理机制来提升程序的健壮性和可维护性。