java该如何正确的抛异常

看别人写的有个读取文件的代码,异常一直向上抛,然后我就修改为捕获异常,结果就导致文件没有读取到,后面代码依然执行,觉得浪费!
但一直向上抛,又觉得每个调用方法加 throws IOException 特麻烦。怎么实现捕获异常,正确的终止后续代码执行

如果异常需要被调用者知晓的,是必须往上抛的,由调用者决定是否需要捕获,还是再继续往上抛出。
如果异常对于调用者来说,可以屏蔽,那你就可以把异常吃掉,以避免影响整个流程,然后再捕获异常的地方,输出错误日志,便于后续跟踪

一般都统一上抛,到controller时有全局异常处理器来统一捕捉处理。搜搜你项目,应该有个GlobalExceptionHanderxxxx

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: Java进阶篇3——异常中的 1. 练习 IOException及如何抛出异常 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    package javaadvanced;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    
    /**
     * 异常学习
     *
     * @author NoBug
     * @version 1.0
     * @time 2022/3/11
     * @Blog https://blog.csdn.net/qq_51184516
     *
     */
    public class MyException {
    	public void readFile() throws IOException {
    		FileInputStream file = new FileInputStream("read.txt");
    		int fp;
    
    		while ((fp = file.read()) != -1) {
    			System.out.print((char) fp);
    			fp = file.read();
    		}
    		file.close();
    	}
    
    	public static void main(String[] args) {
    		MyException fp = new MyException();
    
    		/*
    		 * 1. throws 抛给上层处理, main()调用了readFile(),可以说 main方法就是readFile方法的上层。
    		 * 
    		 * 2. throws 声明异常,不处理,交由上层处理。
    		 */
    		try {
    			fp.readFile();
    		} catch (IOException e) {
    			// 捕获异常
    			System.out.println(e);
    		}
    	}
    
    }
    
    java.io.FileNotFoundException: read.txt (系统找不到指定的文件。)
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^