がここに私のコードです:私はタイプEの何かを返すために持っているとき、私はNullPointerException
を処理するにはどうすればよいJavaの機能は、一般的なデータ型のいくつかの値を返すために持っているJavaで扱うNullPointerExceptionが
public E get(int index)
{
LLNode<E> current = head;
try {
for (int i = 0; i <= index; i++) {
if (current != null) {
current = current.next;
}
}
return current.data;
} catch (IndexOutOfBoundsException e) {
throw e;
} catch (NullPointerException e) {
// How do I handle this?
}
}
私がテストしています私のコードはJUtilを使用しています。私は初心者であり、理解しにくいこの部分を見つけ出していますので、助けてください。
EDITは:私はJUtil機能を使用してこの機能をテストしてい(部分)コードは以下の通りである:ここでemptylist
// Test empty list, get() should throw an exception
try {
emptyList.get(0);
fail("Check out of bounds");
} catch (Exception e) {
}
することは、個人的に作成したLinkedListのクラスから作成された空のListオブジェクトです。どうすればこの問題を解決できますか(//空のリストをテストして、getは例外をスローする必要があります)。この場合、最初に述べたget関数はNullPointerExceptionを返します。私を助けてください。
新しいコード:
public E get(int index)
{
// TODO: Implement this method.
LLNode<E> current = head;
for(int i=0; i<=index; i++)
{
if(current != null)
{
current = current.next;
}
else
{
throw new IndexOutOfBoundsException();
}
}
return current.data;
}
「新しいコード」を実行した後、これらは結果やエラーで左下のパネル上にある:
例外を処理する方法がわからない場合は、それをキャッチしないでください。 – SLaks
nullを戻すか、例外をキャッチしません。 – FredK
これらの例外は両方とも 'RuntimeExceptions'であり、明示的にキャッチされることはめったにありません。代わりに、その例外のいずれかが最初にスローされないように対策を講ずる必要があります。 –