目录
问题内容
解决方法
首页 Java 抛出异常而不是返回。方法返回的实际类型是什么?

抛出异常而不是返回。方法返回的实际类型是什么?

Feb 22, 2024 pm 01:58 PM
overflow

php小编子墨带来的java问答文章将解答一个常见问题:“抛出异常而不是返回。方法返回的实际类型是什么?”在Java中,当方法抛出异常时,方法的返回类型实际上是void,而不是抛出异常的类型。这意味着方法并没有返回任何值,而是在遇到异常时直接抛出。在处理异常时,可以使用try-catch语句来捕获异常并进行相应处理,确保程序的稳定性和可靠性。

问题内容

我正在深入挖掘 Java 中 URL 类的 openStream() 方法,以找到其实际的返回类型。来自OpenJDK,其来源是:

公共最终InputStream openStream()抛出java.io.IOException { 返回 openConnection().getInputStream(); }

返回类型显然是 InputStream 的 Object,它是一个抽象类。那么,这是声明的类型,返回对象的实际类型是什么? 我遵循 openConnection() 方法,该方法返回 URLConnection 类的对象。我还顺着它的源码找到了getInputSteam()的返回。最后,我找到了这段代码:

公共输入流 getInputStream() 抛出 IOException { throw new UnknownServiceException("协议不支持输入"); }

我的问题是 getInputStream() 的实际返回类型是什么,这将是 openStream() 的实际返回类型?

解决方法

这是使用 HTTPS 地址的示例。

使用调试过程,并在URL#openStream方法上放置断点
而且,我的意思是实际的方法,而不是您的调用。

从这里,“步入”openConnection方法。
然后,“步入”openConnection(URL)方法。

这会将您带到 sun.net.www.protocol.https.Handler 类。

再次前进到 openConnection(URL, Proxy) 方法,该方法返回 sun.net.www.protocol.https.HttpsURLConnectionImpl 的新实例。

进一步遍历,您会发现通过 sun.net.www.protocol.https.DelegateHttpsURLConnection 类返回了 HttpsURLConnection 的实例。

你知道,当我几年前开始使用 Java 时,我(几乎)有这个确切的问题,除了我对 java.awt.Graphics 感到困惑。

参见Programming to an interface

这个想法是,您实际上不需要知道精确的类 - 任何实现该接口的东西都可以换入或换出。随着时间的推移,这使得代码的适应性更强。

以上是抛出异常而不是返回。方法返回的实际类型是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

比特币诞生至今价格2009-2025 最全的BTC历史价格汇总 比特币诞生至今价格2009-2025 最全的BTC历史价格汇总 Jan 15, 2025 pm 08:11 PM

比特币诞生至今价格2009-2025 最全的BTC历史价格汇总

Windows11右下角时间没了怎么办_Windows11右下角时间没了解决方法 Windows11右下角时间没了怎么办_Windows11右下角时间没了解决方法 May 06, 2024 pm 01:20 PM

Windows11右下角时间没了怎么办_Windows11右下角时间没了解决方法

Java 函数有哪些社区论坛或讨论组可以提问和讨论? Java 函数有哪些社区论坛或讨论组可以提问和讨论? Apr 28, 2024 pm 02:12 PM

Java 函数有哪些社区论坛或讨论组可以提问和讨论?

python怎么用别人的代码 python怎么用别人的代码 May 05, 2024 pm 07:54 PM

python怎么用别人的代码

win11电脑时间一直不对怎么办?win11电脑时间不对怎么调整方法 win11电脑时间一直不对怎么办?win11电脑时间不对怎么调整方法 May 03, 2024 pm 09:20 PM

win11电脑时间一直不对怎么办?win11电脑时间不对怎么调整方法

Java 函数开发中常见的异常类型及其修复措施 Java 函数开发中常见的异常类型及其修复措施 May 03, 2024 pm 02:09 PM

Java 函数开发中常见的异常类型及其修复措施

overflow在css中是什么意思 overflow在css中是什么意思 Apr 28, 2024 pm 03:15 PM

overflow在css中是什么意思

抖音乱封账号没人管吗?可以二次申诉吗? 抖音乱封账号没人管吗?可以二次申诉吗? May 03, 2024 am 09:37 AM

抖音乱封账号没人管吗?可以二次申诉吗?