java - java中的异常,打印一个列表
问题描述
我有一个关于异常的一般性问题。我应该写什么以便打印整个列表?当时我的输出以“字符串为空”结尾
谢谢
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Collections.addAll(list, "hi", null, "hello");
try {
print(list);
} catch (NullPointerException e) {
System.out.println(e.getMessage());
}
}
private static void print(List<String> list) {
for (String string : list) {
if (string == null) {
throw new NullPointerException("String is null");
}
System.out.println(string);
}
}
解决方案
如果你想打印整个列表,你应该使用System.out.println("String is null");
而不是,throw new NullPointerException("String is null");
因为异常会停止程序并且它不能打印其余的元素。
import java.util.*;
public class Program
{
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Collections.addAll(list, "hi", null, "hello");
try {
print(list);
} catch (NullPointerException e) {
System.out.println(e.getMessage());
}
}
private static void print(List<String> list) {
for (String string : list) {
if (string == null) {
System.out.println("String is null");
} else {
System.out.println(string);
}
}
}
}
推荐阅读
- react-native - 反应:无法在 componentWillMount 中设置状态
- java - 如何使 JButton 仅可点击一次而不增加后续点击次数?
- python - How to add a new column with values based on conditions of other existing columns?
- laravel - Laravel Cascade Insert throught HasMany relationship
- azure - Is it that I can't edit an AKS cluster on Azure?
- android - 如何将通知徽章添加到日历日
- ios - 如何在方法中使属性可用(非 Null)?
- google-maps - 在 SAP 上使用 Google Maps API 时遇到 SSL 问题
- unity3d - Unity collision while rescaling
- reactjs - Why are Arrow Functions in ReactJS considered as property?