【问题标题】:Throwing UnsupportedDataTypeException explicitly without declaring Throws in the method signature显式抛出 UnsupportedDataTypeException 而不在方法签名中声明 Throws
【发布时间】:2019-01-06 10:01:04
【问题描述】:

我在 HackerRank 上遇到了一个问题,方法是这样写的。

public static String anagram(String s , String s1){

//write ur logic

throw new UnsupportedDataTypeException("anagram(String s , String s1)");    
}

我无法编辑此方法签名中的任何内容。现在我在下面写了我的逻辑:

public static String anagram(String s , String s1){

        String str="";
        char []a=s.trim().toLowerCase().toCharArray();
        char []b=s1.trim().toLowerCase().toCharArray();

        Arrays.sort(a);
        Arrays.sort(b);
        boolean isAnag=false;
        isAnag=Arrays.equals(a, b);

        if(isAnag){
            str= "yes";
        }
        else{
            str= "no";
        }
        return str;
        throw new UnsupportedDataTypeException("anagram(String s , String s1)");
    }

现在无论我做什么。这个 UnsupportedDataTypeException 给了我编译错误,即使我在代码中添加了 try catch 块,但异常仍然存在。我不能在方法签名中使用 Throws 关键字,因为它不可编辑。

提前致谢。

【问题讨论】:

  • 看起来throw new UnsupportedDataTypeException("anagram(String s , String s1)"); 只是一个实现存根。我相信您可以将其删除,因为此语句无法访问。 return 语句后面不能放任何代码,这样的代码将无法访问,编译会失败。详细了解已检查和未检查的异常here
  • (你在哪里找到的?我在 Google 上找到的问题版本没有 throw 声明。)
  • 这是在hackerRank网站上的。

标签: java anagram


【解决方案1】:

看起来throw new UnsupportedDataTypeException("anagram(String s , String s1)"); 只是一个实现存根。

您可以直接删除它,因为此语句无法访问。 return 语句后面不能放任何代码,这样的代码我无法访问,所以编译会失败。

详细了解已检查和未检查的异常here。如果您需要从您的方法中抛出异常,请考虑抛出 RuntimeException 或创建您自己的运行时异常并抛出它。

【讨论】:

  • 我想说这是一个提示,应该处理预期的格式和可能产生的异常。更有可能期望移动它而不是移除它。
  • 没有。我无法编辑那种格式的任何东西。我们只需要遵循这一点并在其之间编写我们的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多