मैं ज्यादातर जांचे हुए अपवादों के साथ संभावित समस्याओं को समझते हैं और यही कारण है कि Kotlin उन्हें अस्वीकार करते हैं। हालांकि, मुझे जो मुद्दा आ रहा है वह है कि मुझे कॉलर को स्पष्ट रूप से इंगित करने का कोई मूर्खतापूर्ण तरीका नहीं मिल रहा है कि कोई फ़ंक्शन फेंक सकता है।वहाँ एक Kotlin समारोह क्या अपवाद फेंकता को देखने के लिए किसी भी आसान तरीका है?
मैं अजगर में इस मुद्दे को अनगिनत बार जहाँ मेरे कार्यक्रम महीनों के लिए चल रही है क्योंकि मैं कुछ पुस्तकालय मैं एक विशेष अपवाद बढ़ा सकते हैं का उपयोग कर रहा से एक समारोह का एहसास नहीं था के बाद दुर्घटना जाएगा में चलाने की है। हालांकि अपवादों को पकड़ने के लिए मजबूर होना काफी समस्याग्रस्त हो सकता है, लेकिन यह सुनिश्चित करना अच्छा होता है कि फ़ंक्शन फेंकने वाले सभी संभावित अपवादों को स्पष्ट रूप से देखना अच्छा लगता है।
तो सवाल करने के लिए वापस, वहाँ क्या अपवाद एक समारोह Kotlin में फेंकता है देखने के लिए किसी भी आसान तरीका है? जावा में लिखे गए तरीकों के बारे में क्या है जिन्हें कोटलिन से बुलाया जा रहा है? यहां तक कि अगर टूलिंग (intelliJ) में भी। मैं इसे javadoc या kdoc में लिखने की गिनती नहीं कर रहा हूं क्योंकि आपके द्वारा उपयोग किए जा रहे फ़ंक्शन के लेखक ने इसे छोड़ा होगा।
मैं यह नामुमकिन है लगता है। निम्नलिखित पर विचार करें: 'वैल cls = class.forName (ए); वैल विधि = cls.getMethod (बी); method.invoke() ', जहां' a' और 'b' फ़ाइल से पढ़े जाते हैं या उपयोगकर्ता इनपुट द्वारा प्रदान किए जाते हैं। कोड को निष्पादित करने से पहले आप कैसे जानते हैं कि इस कोड में कौन से अपवाद फेंकते हैं? –
मेरा मतलब है आप जब तुम प्रतिबिंब का उपयोग प्रकार की जानकारी के सभी प्रकार के लापता होने के लिए जा रहे हैं। यदि आप जावा में प्रतिबिंब का उपयोग कर रहे थे तो क्या वही समस्याएं लागू नहीं होंगी? मुझे लगता है कि यह अभी भी उपयोगी होगा कि उन मामलों में अपवादों को कैसे फेंक दिया जा सकता है जहां संकलन समय पर प्रकार ज्ञात है। – zjuhasz