2013-05-24 4 views
0

Akka의 데이터 흐름 DSL을 사용하는 동안 미래에 조건부로 예외를 두 번 던질 필요가있었습니다.흐름 블록에서 조건부 예외 발생

flow { 
    // ... 
    if (someCond) 
    shiftUnit(throw new SomeException) 
    else 
    Future().apply() 
    // ... 
} 

이 그것을 할 올바른 방법입니다 : 이것은 내가 그 일을하고 어떻게? 아니면 더 나은 방법이 있습니까?

답변

2

접근 보인다 올바른 (내 지식 녹슨 조금 있지만), 당신도 다른 지점을 남길 수 있습니다, 나를 위해 다음과 같은 작업 (스칼라 2.10.1) : A의 결과

flow { if (x == 2) shiftUnit(throw new Exception) } 

Future[Unit].

+0

감사합니다. 그거야. – missingfaktor

+0

나는'if (someCond) { methodReturningFuture (product)() } else { Future(). apply() }와 같은 코드도있다. 어떻게 든 여기에'else' 브랜치를 놓을 수 있습니까? – missingfaktor

+0

아니요, 옳은 것을 반환해야합니다 (위의 유닛이었습니다). 거짓 분기에서 생산해야 할 가치는 무엇입니까? 그것을 포장하는 더 짧은 방법은 Future.successful (x) (또는 그 문제에 대해서는 실패)입니다. –