Cannot invoke “java.net.URL.toExternalForm()“ because “location“ is null异常解决

这篇具有很好参考价值的文章主要介绍了Cannot invoke “java.net.URL.toExternalForm()“ because “location“ is null异常解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在进行图形界面的设置时我们可能会遇到这样的异常情况:

Cannot invoke "java.net.URL.toExternalForm()" because "location" is null

为避免方法调用中空对象引用异常 `NullPointerException`,你可以通过判断该变量是否为 `null`,若为 `null` 则为其赋值一个默认值。例如:

  1. 1.使用try,catch捕捉异常

URL location = null;
if (location == null) {
try {
location = new URL("https://example.com"); //或获取实际有效地址
} catch (MalformedURLException e) {
e.printStackTrace();
}
}

  1. 2.通过三元操作符(ternary operator)判断 `location` 是否为 `null`,来赋默认值:


URL location = null;
location = (location == null) ? new URL("https://example.com") : location;

这样,你就可以在代码的其他部分中,安全地使用 `location` 变量进行方法调用:

String locationString = location.toExternalForm();

这将避免在调用 `toExternalForm()` 方法时,抛出空对象引用异常。

例如:我在编译是就遇到Cannot invoke "java.net.URL.toExternalForm()" because "location" is null异常

我的原来的代码是  :

 btnNewButton_1.setIcon(new ImageIcon(SchoolClassAddInterFrm.class.getResource(".ideab/reset.png")));

我用的方法是使用try,catch来解决,以下就是我修改之后的代码:

try {
            btnNewButton_1.setIcon(new ImageIcon(ImageIO.read(new File(".ideab/reset.png"))));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

在编译程序时。我们通常会遇到各种各样的异常情况,所以我们需要对try,catch有充分的理解。懂得如何捕捉异常情况,使得程序不报异常。在实际运用开发中,我们遇到的通常都是空指针异常。
     以上是我解决问题后自己的一点感悟,如有问题,望指正。文章来源地址https://www.toymoban.com/news/detail-774233.html

到了这里,关于Cannot invoke “java.net.URL.toExternalForm()“ because “location“ is null异常解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决报错:Can‘t connect to HTTPS URL because the SSL module is not available.

    本人今天准备打开Pycharm安装一个label-studio包,试了很多次,接连报如下错误,因此我就去找了一些解决方案,现在总结如下: github上有对应的解决方案,链接:https://github.com/conda/conda/issues/8273 说的是D:Anaconda3DLLs ssl.pyd search for the OpenSSL DLLs but in the wrong/current location,也就是

    2024年02月15日
    浏览(41)
  • Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available.“

    最近在linux系统里安装python3.11之后,使用pip安装第三方库、requests库进行网络请求都会报这个错  查找了网上很多方法,看见了一个大佬的,是在pip 的命令最后面加上: 加上之后确实可以安装第三方库了,但是在我用requests库进行请求的时候 又报了这个错  但是请求http的话

    2024年02月09日
    浏览(48)
  • 在使用TreeMap时遇到Cannot invoke “java.lang.Integer.intValue()“

    问题代码: 执行代码会抛出 java.lang.NullPointerException: Cannot invoke \\\"java.lang.Integer.intValue()\\\" because the return value of \\\"java.util.TreeMap.floorKey(Object)\\\" is null ,这是因为map.floorKey在无返回值时会返回null,而int无法接null。另外, intValue() 这个是因为,Java发现外面是int接,会自动拆箱将Inte

    2024年02月12日
    浏览(47)
  • windows: pip install 报错SSLError Can‘t connect to HTTPS URL because the SSL module is not available

    windows anaconda pip清华源 通过pip install 安装不成功,会报错(Caused by SSLError(\\\"Can\\\'t connect to HTTPS URL because the SSL module is not available.\\\")) 错误详情如下: 具体是什么错误什么原因导致,不去深究了。或许是源本身有问题?下面直接提供解决方法,通过更换源解决了该错误 加上--truste

    2024年02月15日
    浏览(53)
  • 【Android】Multiple Gradle daemons might be spawned because the Gradle JDK and JAVA_HOME locations...

    在完成Gradle同步后,Android Studio报告了一个错误。 Gradle守护进程是一个后台进程,通过缓存项目信息和在后台运行构建过程来提高构建时间。它利用Java虚拟机(JVM)并提供了一些优势来改善构建过程。 这个错误是由于Gradle JDK和JAVA_HOME路径不一致,可能会导致多个Gradle守护进

    2024年02月04日
    浏览(45)
  • 【Android】Multiple Gradle daemons might be spawned because the Gradle JDK and JAVA_HOME locations解决方案

    🌟博主领域:嵌入式领域人工智能软件开发 本解决方案亲测无误,完美解决该问题。 在刚安装完Android studio软件后,新建第一个项目时,出现如下通知的错误。 原文: Multiple Gradle daemons might be spawned because the Gradle JDK and JAVA_HOME locations are different. Project \\\'hellov1\\\' is using the fol

    2024年02月03日
    浏览(61)
  • 已解决java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying e

    已解决java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: 下滑查看解决方法 java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception 是一个

    2024年02月03日
    浏览(47)
  • cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not

    JDK21 Spark3.5.0 使用JDK21做spark开发 启动代码出现 Exception in thread \\\"main\\\" java.lang.IllegalAccessError: class org.apache.spark.storage.StorageUtils$ (in unnamed module @0x461ad730) cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x461ad730 报错信息 需要

    2024年02月02日
    浏览(56)
  • java.net.URL超时时间默认无限制问题

    Java中可以通过URLConnection类或者HttpURLConnection类来开发网络应用,它们内部又是通过java.net.URL类来实现的。可以通过URLConnection.setConnectTimeout()方法和URLConnection.setReadTimeout()方法来设置URLConnection连接和读取的超时时间。   其中setConnectTimeout()设置连接超时时间,单位毫秒 setRead

    2024年02月13日
    浏览(39)
  • springboot配置swagger报错Cannot invoke “org.springframework.web.servlet.mvc.condition.......”

    springboot配置swagger时报错,spring boot使用版本为2.7.16或3.1.5,JDK17,项目启动报错,项目使用swagger 3.0. 具体报错信息如下: swagger导入依赖如下: 解决方案:在application.yml中引入以下配置: 另外,因为版本不同,访问路径改变和访问的文件名也与之前版本不一致! 直接访问h

    2024年01月22日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包