मुझे नीचे अपने स्कैला कोड में परेशानी हो रही है:

class ClassMyHelper {

  protected var logger: Logger = LogManager.getLogger(classOf[AvroHelper])

   def somefunc(schema: Schema, datum: GenericRecord): Array[Byte] = {
    <code>
    var byteData: Array[Byte] = null
    try {
      <code>
      byteData = os.toByteArray()
      //byteData
    } catch {
      case e: IOException =>
        logger.error("IOException encountered!! ", e)

      case e: Exception =>
        logger.error("Something went wrong!! ", e)

    } finally try os.close()
    catch {
      case e: IOException =>
        logger.error("IOException encountered while closing output stream!! ", e)

      case e: Exception =>
        logger.error("Something went wrong while closing output stream!! ", e)

    }
    byteData //Unreachable code
  }
}

समस्या यह है कि somefunc फ़ंक्शन में अंतिम पंक्ति मुझे एक पहुंच योग्य कोड त्रुटि नहीं मिल रही है। क्या आप कृपया मुझे यह पहचानने में मदद कर सकते हैं कि मैं यहाँ क्या गलत कर रहा हूँ।

0
Vikas Saxena 24 अगस्त 2017, 09:18

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप दूसरे catch ब्लॉक के बाद finally {} जोड़ते हैं तो चीजें साफ हो जाती हैं। मुझे यकीन नहीं है कि क्यों। मैं स्वयं कभी भी try/catch/finally का उपयोग नहीं करता। मैं मानक पुस्तकालय से स्काला Try वर्ग पसंद करता हूं।

BTW, अगली बार जब आप कोड पोस्ट करें तो कृपया आवश्यक imports शामिल करें, और यह सुनिश्चित करने के लिए जांचें कि आपका कोड प्रस्तुत के रूप में संकलित है।

1
jwvh 24 अगस्त 2017, 10:30