2014-05-21 7 views
-1

다음 코드를 코드에 삽입하려고합니다.Null 참조 예외 처리

Public ReadOnly Property SelectedCustomer() As Customer 
    Get 
     If lstCustomers.SelectedIndex <> -1 Then 
      ' Return the selected customer 
      Return CType(objCustomers(lstCustomers.SelectedIndex), Customer) 
     End If 
    End Get 
End Property 

그러나 다음 경고 발생을 저장하는 동안.

속성 'SelectedCustomer'는 모든 코드 경로에서 값을 반환하지 않습니다. 결과가 사용될 때 런타임에 널 참조 예외가 발생할 수 있습니다.

해결 방법? 어떤 도움이 필요합니까?

답변

1

lstCustomer.SelectedIndex = -1 일 때 어떻게됩니까? 현재 아무 것도 반환하지 않습니다. 그래서 당신은 모든 경로 메시지에서 돌아 오지 않는 것을 얻고 있습니다.

이의 문제는 여전히이 속성을 읽을 때 아무것도 처리 할 필요가있다

Public ReadOnly Property SelectedCustomer() As Customer 
    Get 
     If lstCustomers.SelectedIndex <> -1 Then 
      ' Return the selected customer 
      Return CType(objCustomers(lstCustomers.SelectedIndex), Customer) 
     End If 

     Return Nothing 
    End Get 
End Property 

간단한 솔루션입니다. 고객의 새 인스턴스를 반환 할 수도 있지만 다시 한 번 처리해야합니다.