gpt4 book ai didi

java - IDE 强制用 try/catch 包围而不抛出异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:29 26 4
gpt4 key购买 nike

我了解已检查异常和未检查异常之间的区别。 Java 编译器强制程序员要么用 try/catch block 包围已检查的异常,要么在方法签名中添加 throw 声明。

但是有时我看到在 Eclipse 中,编译器只给我一个选项,用 try/catch block 包围语句而不抛出它。为什么会这样?这是因为在继承层次结构中,类(包含可能产生异常的代码)位于顶部吗?

例如,我正在为 Hadopp 映射器编写映射函数:

public void map(BytesWritable key, Text value, Context context) {
String[] fields = value.toString().split("\t");
String referrer = fields[10];
context.write(new LongWritable(referrer.length()), new Text(
referrer));
}

这是一个非常简单的映射函数,我从一行中提取一个字段并将它的长度作为键发出,并将它本身作为值发出。现在,我收到 Context.write() 抛出的错误 Unhandled exception type InterruptedException,Eclipse 只给我一个选项,用 try/catch block 包围它而不抛出它在层次结构中向上。为什么会这样?

作为引用,您可以阅读Context.write 的函数签名here .

谢谢。

最佳答案

throws 是方法签名的一部分。如果要定义抽象方法,则必须遵守其签名。您不能在实现时添加 throws

关于java - IDE 强制用 try/catch 包围而不抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17893267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com