繁体   English   中英

为什么我的程序不接受自定义异常?

[英]Why does my program not accept a custom exception?

我正在尝试制作cat克隆,但我要求它在出现-时要求接收输入。

主要的(); 在这儿:

import java.io.*;
import java.util.*;

class cat {
  public static void main(String[] args) {
    for (int i = 0; i < args.length; i++) {

      try{
       filePrint(args[i]);

        }   catch(DashException letsTryThis){
           catDash();
        }   catch(FileNotFoundException wrong) {
           System.err.println(String.format("%s: File Not Found.", args[i]));
        }   catch (IOException noWords) {
           System.err.println(String.format("%s: File can't be read.", args[i]));
      }
    }
  }
}

filePrint()filePrint()打印文件,而catDash()接收并打印stdin。 没什么特别的。

我正在尝试做的是有一个自定义异常,该异常专门捕获-并调用catDash() (上面的第一个catch块)。 但是,无论如何,try / catch块始终会抛出FileNotFound wrong异常(上面的第二个catch块)。 我的问题是,如何获取一个特定原因并在第二个步骤之前先将其抛出?

我的DashException定义为它自己的文件:

import java.lang.Throwable;

public class DashException extends FileNotFoundException{
  public DashException(Throwable cause){
    super("-")
  }
}

您不会从任何地方抛出自定义异常。 您需要throw其放入try块中的自己的代码中。 例如:

if (args[i].equals("-")) {
     throw new DashException();
}

您可以从构造器中删除th ,因为没有任何根本原因可以导致此异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM