我已经在使用这种方法(我想这就是名称),它实际上是在尝试匹配字符串的一部分,然后返回字符串的后续部分-我拥有的那一部分,很简单。该方法的类型为String。
当我的方法无法在字符串中找到模式时,我希望它返回一个空字符串。我还想随空字符串一起发送消息,以“嘿,我没有找到您的密钥”,但是我希望它是可选的。
这基本上就是我想要的方法:
public static String getKey(String key) throws KeyNotFoundException {
if (key.equals("something")) {
return "great";
} else {
throw new KeyNotFoundException();
return "";
}
}
但是此代码的问题在于,由于return "";
,throw new KeyNotFoundException();
显然无法访问。
如果要调用此方法,则必须使用try {} catch(KeyNotFoundException knf) {}
块。但是,我要将此块设置为可选。
如果我选择忽略找不到密钥的事实(例如,不要使用try catch),那么我只想在返回时得到空字符串。
但是,如果我需要知道是否找到要正确完成操作的密钥,我也希望能够用try-catch块将其包围。
我认为这是错误的做法,但我似乎找不到其他方法(Java的新功能),请问有人对此有所了解吗?
参考方案
这样做的通常方法是编写两种方法,一种返回默认值,另一种引发异常。您可以让其中一个调用另一个,以避免重复:
public static String getKey(String key) throws KeyNotFoundException {
String value = getOptionalKey(key);
if (value.equals("")) throw new KeyNotFoundException(key);
return value;
}
public static String getOptionalKey(String key) {
if (key.equals("something")) {
return "great";
} else {
return "";
}
}
然后,呼叫者可以根据自己的需要选择呼叫哪个:
String value = getOptionalKey("uma"); // oblivious
try {
String value = getKey("uma"); // cognisant
}
catch (KeyNotFoundException e) {
// panic
}
Java-NoSuchMethodError没有被异常捕获 - java我的印象是,Exception非常适合捕获所有可能的异常,因为每个异常都具有Exception作为基类。然后,在开发Android应用程序时,我使用了以下方法,该方法在某些自定义ROM中已被删除。boolean result = false; try{ result = Settings.canDrawOverlays(context); } catch(E…
Java-搜索字符串数组中的字符串 - java在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…
Java Scanner读取文件的奇怪行为 - java因此,在使用Scanner类从文件读取内容时,我遇到了一个有趣的问题。基本上,我试图从目录中读取解析应用程序生成的多个输出文件,以计算一些准确性指标。基本上,我的代码只是遍历目录中的每个文件,并使用扫描仪将其打开以处理内容。无论出于何种原因,扫描程序都不会读取其中的一些文件(所有UTF-8编码)。即使文件不是空的,scanner.hasNextLine()在…
Java:正则表达式模式匹配器是否有大小限制? - java我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)
Java:线程池如何将线程映射到可运行对象 - java试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …