2011-09-22 17 views
10

अगर मैं तरीकों File.mkdir() या File.mkdirs() जावा में से एक कॉल के लिए कारण की खोज, और यह false देता है, वहाँ एक रास्ता पता करने के लिए क्यों निर्देशिका नहीं बनाया गया था है?File.mkdirs() विफलता

+2

मैंने हमेशा सोचा है कि क्यों 'mkdir()' को इस तरह से डिजाइन किया गया था (यह नहीं कि यह कभी मेरे लिए एक समस्या थी)। – NPE

+1

'हटाएं() 'के साथ ही, बस एक बूलियन देता है। कोई सुरक्षा क्यों नहीं है अगर यह 'सुरक्षा अपवाद' नहीं है। –

उत्तर

4

वास्तव में नहीं, नहीं। यदि SecurityException नहीं फेंक दिया गया है, तो सबसे संभावित कारण पथ में एक टाइपो है, जिसका अर्थ है कि आपने गलती से नई निर्देशिकाओं के लिए एक पैरेंट पथ निर्दिष्ट किया है जो किसी भी तरह से अमान्य है।

मैं आप इसे एक try { ... } catch (Exception e) ब्लॉक में लिपटे है, जहां आप एक SecurityException फेंक दिया जा रहा है एहसास नहीं है, तुम क्या लगता नहीं है क्योंकि आप SecurityException के एक पूर्वज को पकड़ने रहे हैं,?

यदि आपको उच्च विश्वास है कि सब ठीक दिखता है, और यह अभी भी विफल रहता है, तो मुझे लगता है कि आप इसे तीन बार पुनः प्रयास करने के लिए इसे लूप में डाल सकते हैं। यदि यह अभी भी विफल रहता है, और आपके आवेदन के आधार पर, आप UI स्तर पर किसी प्रकार की अलर्ट बढ़ा सकते हैं, या लॉग फ़ाइल में त्रुटि लॉग कर सकते हैं (मान लीजिए कि आप इसे लिख सकते हैं)।

मुझे लगता है कि यह संभव है कि कुछ गहरा I/O मुद्दा इसे काम करने से रोक रहा है, लेकिन विफलता के उपयोगकर्ता को केवल सूचित करने से परे आप आवेदन स्तर पर जितना अधिक कर सकते हैं (या वास्तव में करना चाहिए)। यदि I/O में कुछ गहराई है, तो सिस्टम/हार्डवेयर/ओएस, या पूरी तरह से भद्दा कुछ समस्या है कि आपके पास सबसिस्टम/सेवा क्रैश की तरह कोई नियंत्रण नहीं है।

... और यदि ऐसा हो रहा है, तो यह आपके आईटी लड़के को ठीक करने के लिए जिम्मेदार है, न कि आपके आवेदन पर। बेशक आपका ऐप किसी भी तरह दुर्घटना का कारण बन रहा है।

+2

नहीं, यह मामला नहीं था। मैंने समस्या की खोज की (मूल निर्देशिका में क्लस्टर के एक नोड में गलत मालिक था) लेकिन मुझे किसी अन्य मंजिल पर जाने के लिए, नेटवर्क व्यवस्थापक से बात करने के लिए, किसी से मुझे एक एसएसएच सत्र देने के लिए कहा और अंततः, ' mkdir मेरे/दोषपूर्ण/पथ'। मैं इसे करने का एक और व्यावहारिक तरीका उम्मीद कर रहा था ... – brandizzi

+0

वैसे आप वहां जाते हैं - आईटी लड़का समस्या। :) – jefflunt

+1

हाहा, निश्चित रूप से :) लेकिन जावा सहायक नहीं था ... – brandizzi

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