2010-08-02 10 views
9

जावा में, Thread.sleep() इंटरप्टेड एक्सेप्शन फेंकता है। इस अपवाद के साथ क्या करना उचित बात है?Thread.sleep से इंटरप्टेड एक्सेप्शन()

मैं

  1. कॉल श्रृंखला को अपवाद का प्रचार करना चाहिए?
  2. अपवाद निगल?
  3. कुछ और कर रहे हैं (कृपया सुझाव दें)?
+2

इस पर निर्भर करता है कि अपवाद क्यों हुआ। क्या यह एक सैद्धांतिक प्रश्न है या क्या आपके पास उपयोग में मामला है? –

+0

यह आलेख आपको इस तंत्र को समझने में मदद कर सकता है: [आप इंटरप्टेड एक्सेप्शन के साथ क्या करते हैं?] (Http://www.yegor256.com/2015/10/20/interrupted-exception.html) – yegor256

उत्तर

9

आपको अपवाद को पुनर्स्थापित करना चाहिए।

यह ब्रायन गोएज़, उत्कृष्ट पुस्तक के "Java Concurrency in Practice" लेखक की ओर से एक सार है:

InterruptedException से निपटना:

तो फेंक InterruptedException मतलब है एक विधि एक अवरुद्ध तरीका है कि , फिर ब्लॉकिंग विधि को कॉल करने का अर्थ है कि आपकी विधि एक अवरुद्ध विधि भी है, और आपके पास InterruptedExc से निपटने के लिए एक रणनीति होनी चाहिए eption। अक्सर सबसे आसान रणनीति के रूप में, अपने आप को InterruptedException फेंक putTask() और getTask() लिस्टिंग 1. ऐसा करने से में तरीकों बनाता में दिखाया गया है अपने विधि रुकावट के रूप में अच्छी तरह से उत्तरदायी और अक्सर जोड़ने से कुछ भी नहीं अधिक की आवश्यकता है आपके फेंकने वाले खंड में इंटरप्टेड एक्सेप्शन ।

देखें: Dealing with InterruptedException

+2

एक और संभावना है कि पुनः- तत्काल बाधा स्थिति जोर दें। Thread.currentThread()। बीच में()। यह कभी-कभी उपयोगी होता है यदि आप एपीआई को नियंत्रित नहीं करते हैं (शायद आप कुछ तृतीय पक्ष इंटरफ़ेस को कार्यान्वित कर रहे हैं), लेकिन आप अंतराल की स्थिति को संरक्षित करना चाहते हैं, इसलिए इसे बाद में चेक/अवरुद्ध विधि "देखा" जा सकता है । –

0

तुम सब करने की कोशिश कर रहे हैं कुछ समय जला है, तो मैं बस पकड़ने और अपवाद अनदेखी सुझाव है।

यदि दूसरी तरफ, आपको प्रतीक्षा समय की उचित मात्रा की आवश्यकता है और किसी भी प्रीपेप्टिव बाधा आपके कार्यक्रम के लिए वास्तव में खराब है, तो आपको निश्चित रूप से अपवाद को पुनर्स्थापित करना चाहिए।

यह केवल इस बात पर निर्भर करता है कि अपवाद क्यों हुआ और Thread.sleep() के लिए आपका उपयोग मामला क्या है।

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

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