2016-04-21 21 views
17
try { 

} catch (ex: MyException1, MyException2) { 
    logger.warn("", ex) 
} 

veyaSonuç, bir derleme hatası olarak

try { 

} catch (ex: MyException1 | MyException2) { 
    logger.warn("", ex) 
} 

KOTLIN aynı anda birçok istisnaları yakalamak için nasıl Unresolved reference: MyException2.

Kotlin'de aynı anda birçok özel durumu nasıl yakalarım?

+0

O KOTLIN içinde olması güzel bir özellik olabilir. – Michael

cevap

28

Bu thread numaralı telefona göre bu özellik şu anda desteklenmiyor.

abreslav - JetBrains Team

Not at the moment, but it is on the table

Gerçi çok catch taklit edebilir:

try { 
    // do some work 
} catch (ex: Exception) { 
    when(ex) { 
     is IllegalAccessException, is IndexOutOfBoundsException -> { 
      // handle those above 
     } 
     else -> throw ex 
    } 
} 
+0

'pdvrieze' kopyasını kopyayorum: ' Bu kesinlikle çalışır, ancak yakalanan istisna jvm'ye açık olduğundan biraz daha az verimlidir (bu nedenle işlenmemiş bir istisna yakalanmayacak ve tekrar ortaya çıkacaktır. Çözümünüzün) ' – Solidak

+0

Bu sadece aynı değil. Birden fazla yakalama ile yalnızca belirli istisnaları yakalamak istediğinizde tüm istisnaları yakalar. – IARI

+1

@IARI 'else' cümlesi, _unwanted_ özel durumunu yeniden kullanır. – miensol