2016-04-21 2 views
17
try { 

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

याकैसे नतीजतन, एक संकलन त्रुटि के रूप में Kotlin

try { 

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

में एक ही समय में कई अपवाद को पकड़ने के लिए: Unresolved reference: MyException2

मैं कोटलिन पर एक ही समय में कई अपवाद कैसे प्राप्त कर सकता हूं?

+0

यह Kotlin में है के लिए एक अच्छी सुविधा हो सकती है। – Michael

उत्तर

28

इस thread के अनुसार यह सुविधा इस समय समर्थित नहीं है।

abreslav - JetBrains Team

Not at the moment, but it is on the table

आप बहु पकड़ हालांकि नकल कर सकते हैं:

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

मैं यहां 'pdvrieze' उत्तर की प्रतिलिपि बना रहा हूं: ' यह निश्चित रूप से काम करता है, लेकिन थोड़ा कम कुशल है क्योंकि पकड़ा अपवाद जेवीएम के लिए स्पष्ट है (इसलिए एक गैर-संसाधित अपवाद पकड़ा नहीं जाएगा और पुन: स्थापित किया जाएगा जो अनुशासनिक होगा आपके समाधान का) ' – Solidak

+0

यह वही नहीं है। यह सभी अपवादों को पकड़ लेगा, जबकि आप केवल मल्टी-कैच के साथ कुछ प्रकार के अपवादों को पकड़ना चाहते हैं। – IARI

+1

@IARI 'else' क्लॉज _unwanted_ अपवाद को पुनर्स्थापित करता है। – miensol

संबंधित मुद्दे