java 。方法返回 Null。我必须生成什么异常?

标签 java error-handling nullpointerexception

我有这行代码:

String name = Book.getName();

/*next lines of code*/

接下来,在其他代码中处理变量name,不做任何检查。 在某些情况下,可能的情况是,当 name=null 和其他代码将因错误而退出。

这很糟糕。

此外,我无法访问其他代码。

那么,你觉得呢,我接下来的实现是正确的:

    try
    {
    String name = Book.getName();
    if(null== name)

    throw new NullPointerException("method 'getName' return null");

/*next lines of code*/
    }

    catch(NullPointerException e)
    {
    System.out.print("Hey! Where book name? I exit!");
    System.exit();
    }

在这种情况下我还有其他选择吗?

是否有可能产生任何其他类型的Exception 或仅产生NullPointerException

谢谢。

编辑:

好的,

  String name = Book.getName();

这是想象代码行。在实际情况下,我有更复杂的代码:

List<Book> bookList= new ArrayList<Book>();
String name = null;

Iterator i = BookShop.getBooks.iterator(); //BookShop it is input parameter!

while(i.hasNext())
{

Book book = (Book) i.next;
name = book.getName();

nameList.add(name);


}

这个例子比较全。

所以,在这段代码中输入参数BookShop对象。

这个对象有什么问题?

  1. BookShop 可以是NULL;
  2. 方法BookShop.getBooks()可以返回NULL

此外,getName() 也可以返回 NULL

那么,接下来的普遍问题:不能保证输入参数BookShop的正确性!

而且我必须考虑每一个可能的选项 (3 NULL)

对我来说,添加通用 try-catch block 就可以了。

没有?

最佳答案

您可以通过扩展 Exception 创建任何您喜欢的异常类,例如 NoNameProvidedException。 Google 有很多示例可以帮助您做到这一点。

我想在您的情况下,如果 namenull,只需检查 if 就足够了,因为您只想执行 System.exit().

关于 java 。方法返回 Null。我必须生成什么异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9485120/

相关文章:

java - java中的事件处理程序...程序没​​有错误,但在事件操作未显示后

java - 在 Android 上通过 jni 将 byte[] 传递给 C 时出现问题

python - Python-小小的初学者代码困惑

wpf - 如果下载失败,将图像源绑定(bind)到带有错误图像的 URI

asp.net - Sitecore错误-找不到Xaml控件。最后一个错误是: [No Error]

java - DbHelper 类上下文中出现奇怪的空指针异常,其中的代码

安卓java.lang.NullPointerException : println needs a message

java - 在数组中添加对象时出现奇怪的编译/链接问题

java - ListPopupWindow getListView 创建后返回 nullpointerException

java - 我的警报对话框自定义布局出现问题