首页 > 编程知识 正文

Nullpointer代表什么,什么是异常及异常处理

时间:2023-05-06 13:54:11 阅读:60893 作者:3716

NullPointerException即空指针异常,俗称NPE。 如果对象为null,则在调用方法或访问该字段时将生成NullPointerException。 此异常通常由JVM抛出,如下所示:

公共类主{ publicstaticvoidmain (字符串[ ] args ) { String s=null; system.out.println (s.to lower case ); }指针这一概念实际上来源于c语言,Java语言中没有指针。 我们定义的变量实际上是引用,空指针更准确地说是空参考,但两者不太区分。

如果遇到处理NullPointerException的NullPointerException,该怎么办? 首先,NullPointerException是一个代码逻辑错误,遇到NullPointerException,遵循原则是早期暴露、早期修复,严禁使用catch隐藏这个编码错误

//错误示例:捕获空输入外围设备{传输监视器(从、到、自动); }空点编码(catch )良好的编码习惯大大减少了空点编码的生成,包括:

成员变量在定义时初始化。

公共类人员{私有属性名称=' '; }空字符串““可以避免许多NullPointerException,而不是默认的null。 创建业务逻辑时,使用空字符串“”表示未填写比null安全得多。

空字符串'',返回空数组而不是空数组:

public string [ ] readlinesfromfile (string file ) if ) getfilesize (file==0) )//返回空数组,而不是空: return new string (返回新字符串) 0

如果调用方必须基于null进行判断,例如,如果返回null表示文件不存在,则考虑返回Optional T。

publicoptionalstringreadfromfile (字符串文件) if (! 文件退出(文件) { return Optional.empty; } .这样,调用方必须在Optional.isPresent ()中确定是否有结果。

如果生成了位置nullpointerexceptionnullpointerexception (例如,a.b.c.x ) ),则假设在调用时生成了nullpointerexception。 原因如下。

a为空; a.b为空; a.b.c为空; 从Java 14开始,如果发生NullPointerException,JVM将详细告诉您空对象是谁。 请看一个例子:

public class main { publicstaticvoidmain (字符串[ ] args ) { Person p=new Person ); 系统. out.println (p.address.city.to lower case () ); } class person { string [ ] name=new string [2]; 地址地址=new地址(; }class Address { String city; 字符串条; 字符串zip代码; 在NullPointerException的详细信息中…可以看到类似because“. address.city”null的内容。 这意味着city字段为null,从而可以快速确定问题。

此增强的NullPointerException详细信息是Java 14的新功能,但默认情况下处于禁用状态。 可以将- xx : showcodedetailsinexceptionmessages参数添加到JVM中以启用。

Java-xx 3360 showcodedetailsinexceptionmessagesmain.Java总结NullPointerException是Java代码中常见的逻辑错误,必须快暴露快修复

可以启用Java 14扩展异常信息以显示NullPointerException的详细错误消息。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。