2017-11-09 3 views
2

나는했습니다이 관찰 :ReactriveX : 람다 식으로 관찰 가능한 <bool>에 예외를 잡기

현재
public class NetworkToolEngine 
{ 
    public NetworkToolEngine() 
    {    
     this.connectionAvailable = Observable 
      .Interval(TimeSpan.FromSeconds(5)) 
      .Select(_ => true); 
    } 
} 

static class Program 
{ 
    static void Main() 
    { 
     NetWorkToolEngine networkToolEngine = new NetworkToolEngine(); 
     this.networkToolEngine.ConnectionAvailable 
      .Do(_ => this.ConnectionAvailable()) 
      .Catch(ex => //<<<<<1>>>>> 
      { 
       this.ConnectionUnavailable(); 
       return Observable.Empty<bool>(); 
      }); 
    } 

; 나는 <<<<<1>>>>>에서이 컴파일 오류를 받고 있어요 :

는 대리자 형식

어떤 아이디어가 아니기 때문에 'IObservable'을 입력 람다 식을 변환 할 수 없습니다?

+0

이 코드는 실제 코드가 아니므로 컴파일 할 필요가 없습니다. 유효한 코드를 게시 할 수 있습니까? – Enigmativity

답변

4

캐치에 과부하가 여러 개 있고 유형을 지정하지 않아도 ex입니다. 잘못된 유형을 선택합니다. 다음과 같이해야합니다 :

.Catch((Exception ex) => //<<<<<1>>>>> 
{ 
    this.ConnectionUnavailable(); 
    return Observable.Empty<bool>(); 
});