Petar, (MSDN से)
void WriteLog()
{
if (!this.logFile.CanWrite)
{
throw new System.InvalidOperationException("Logfile cannot be read-only");
}
// Else write data to the log and return.
}
इस उदाहरण कोड के लिए मुझे बताया तो इस संदर्भ में आप एक IllegalStateException इस्तेमाल कर सकते हैं, हालांकि यह कहते हैं:
फेंक एक कार्रवाई एक पर प्रयास किया जाता है जब वह समय जब वर्चुअल मशीन सही स्थिति में नहीं है।
और एक अवैध वीएम राज्य निश्चित रूप से उपरोक्त संदर्भ उदाहरण में मुद्दा नहीं है। यहां, समस्या यह है कि ऑब्जेक्ट अमान्य है, क्योंकि यह केवल पढ़ने-योग्य लॉगफाइल का संदर्भ देता है।
मेरा अपना सलाह: जैसे
package com.pany.project;
public class InvalidOperationException extends RuntimeException {
// add constructors with call to super as needed
}
मेरे लिए एक कस्टम अपवाद परिभाषित करते हैं, कि बहुत आसान java.lang
पैकेज से सबसे अच्छा फिटिंग अपवाद खोजने की कोशिश तो है।
स्रोत
2010-07-02 13:24:03
जावा में यह अपवाद के बजाए एक त्रुटि होगी ... यह हमें यह बताने का जेवीएम तरीका है कि कुछ गलत हो गया है। –
@Andreas_D - आपका क्या मतलब है :) मैं आपकी पोस्ट को प्रश्न से कनेक्ट नहीं कर सकता। –
@ पीटर - जावा में हमारे पास दो प्रकार के थ्रोरेबल्स हैं: त्रुटियां और अपवाद। त्रुटियों को आमतौर पर वर्चुअल मशीन द्वारा फेंक दिया जाता है। आईओई की मेरी समझ यह है कि वीएम का पता लगाता है कि एक विधि को निष्पादित नहीं किया जा सकता है। मुझे लगता है, जावा में आपको रनटाइम पर लोड बाइटकोड को संशोधित करना होगा ताकि सी # में एक क्रैश या अनलोडेड डीएल इस अपवाद का कारण बन सके - और इस मामले में, JVM शिकायत करेगा - एक त्रुटि के साथ। –