અપવાદ અને ભૂલ વચ્ચેનો તફાવત

Anonim

અપવાદ વિરુદ્ધ ભૂલ

અણધાર્યા વર્તન ત્યારે થાય છે જ્યારે કોઈ પ્રોગ્રામ ચાલી રહ્યું હોય. આ અપવાદો અથવા ભૂલોને કારણે હોઈ શકે છે અપવાદો ઇવેન્ટ્સ છે, જે સામાન્ય પ્રોગ્રામ ફ્લોને વિક્ષેપ કરી શકે છે. ભૂલો એવી સ્થિતિઓ છે કે જેને પુનઃપ્રાપ્ત કરી શકાય તેવું ગણી શકાય. અપવાદો મોટેભાગે એપ્લીકેશન સાથે સંબંધિત છે, જ્યારે ભૂલ સિસ્ટમને સંબંધિત હોય છે કે જેના પર પ્રોગ્રામ ચાલી રહ્યો છે.

અપવાદ શું છે?

અપવાદ એ એક ઇવેન્ટ છે, જે સામાન્ય પ્રોગ્રામ ફ્લોને વિક્ષેપ કરી શકે છે. નામ અપવાદ "અપવાદરૂપ ઘટના" માંથી આવે છે. અપવાદને ફેંકવાની અપવાદ ઑબ્જેક્ટ બનાવવા અને રનટાઈમ સિસ્ટમમાં તેને સોંપવાની પ્રક્રિયા છે. અપવાદ ઑબ્જેક્ટ અપવાદ થયો તે પદ્ધતિ દ્વારા બનાવવામાં આવે છે. અપવાદ પદાર્થ ઉપયોગી માહિતી જેવી કે પ્રકાર અને અપવાદ વર્ણન. જ્યારે રનટાઇમ સિસ્ટમ અપવાદ ઑબ્જેક્ટ મેળવે છે, ત્યારે તે કોઈકને કૉલ સ્ટૅકની અંદર તેને રિવર્સ ક્રમમાં (જે પદ્ધતિઓ કહેવામાં આવતું હતું) માં પસાર કરીને શોધવામાં પ્રયત્ન કરશે. કૉલ સ્ટેક પદ્ધતિઓની ક્રમાંકિત સૂચિ છે, જે અપવાદમાં થયેલી પદ્ધતિથી પહેલાં કહેવાતા હતા. રનટાઈમ સિસ્ટમ સફળ થાય છે જો તે અપવાદ હેન્ડલરની પદ્ધતિ શોધે છે. અપવાદ હેન્ડલર એ કોડનો એક બ્લોક છે જે ઔપચારિક રીતે અપવાદ અપવાદને નિયંત્રિત કરી શકે છે. જો રનટાઇમ સિસ્ટમ યોગ્ય હેન્ડલર શોધે છે (દા.ત. અપવાદનો પ્રકાર તે પ્રકારને નિયંત્રિત કરે છે જે સંભાળી શકાય છે), તે હેન્ડલરને અપવાદ ઑબ્જેક્ટ પસાર કરશે. આ અપવાદ મોહક કહેવાય છે તેમ છતાં, જો અપવાદ હેન્ડલ કરી શકાતો નથી, તો કાર્યક્રમ સમાપ્ત થશે. જાવામાં, 'થ્રોએબલ ક્લાસ' માંથી અપવાદ અપાય છે. 'નલ પોઇન્ટર એક્ઝેપ્શન અને અરેઇનઈડેક્ષઉટોબૉક્સ અપવાદો જાવામાં બે સામાન્ય અપવાદો છે.

ભૂલ શું છે?

ભૂલ એવી શરત છે કે જે પુનઃપ્રાપ્ત કરી શકાય તેવું માનવામાં આવે છે, જેમ કે પ્રોગ્રામને ઉપલબ્ધ કરતા ઉપલબ્ધ મેમરી કરતાં વધુ રકમની જરૂર છે. આ ભૂલો રનટાઈમ પર હેન્ડલ કરી શકાતી નથી કોઈ ભૂલ આવી હોય, તો કાર્યક્રમ સમાપ્ત થશે. જાવામાં, ભૂલો થ્રોએબલ ક્લાસમાંથી બોલાવે છે. ભૂલો સામાન્ય રીતે ગંભીર સમસ્યાઓ માટે ઊભા હોય છે કે જે પ્રોગ્રામર (અથવા એપ્લિકેશન) પકડવાનો પ્રયત્ન ન કરવો જોઇએ. ભૂલો ફક્ત અસાધારણ પરિસ્થિતિઓ છે, જે સામાન્ય સંજોગોમાં થવાની અપેક્ષા ક્યારેય થતી નથી, અને તેથી ક્યારેય કલ્પના થતી નથી. ઉદાહરણ તરીકે, OutOfMemoryError, StackOverflowError અને ThreadDead એ આવી ભૂલો છે પદ્ધતિઓએ ભૂલો માટે હેન્ડલર્સ હોવા જોઈએ નહીં

અપવાદ અને ભૂલ વચ્ચે શું તફાવત છે?

પ્રોગ્રામના અમલીકરણ દરમિયાન બન્ને ભૂલો અને અપવાદો અનિચ્છનીય છે. જો કે, તેમની પાસે કી તફાવતો છે. અપવાદો પ્રોગ્રામર દ્વારા આગાહી કરી શકાય છે, જ્યારે ભૂલ અગમચેતી રાખવી મુશ્કેલ છેઅપવાદોને ચેક અથવા અનચેક કરી શકાય છે. પરંતુ ભૂલો હંમેશા અનચેક છે. અપવાદો સામાન્ય રીતે પ્રોગ્રામર દ્વારા થયેલા ભૂલને દર્શાવે છે. જો કે, સિસ્ટમ ભૂલ અથવા સ્રોતના અયોગ્ય વપરાશને લીધે ભૂલ થાય છે. તેથી, એપ્લીકેશન સ્તરે અપવાદો નિયંત્રિત થવો જોઈએ, જ્યારે સિસ્ટમોના સ્તરે ભૂલો લેવામાં આવશે (જો શક્ય હોય તો). કોઈ અપવાદને નિયંત્રિત કર્યા પછી, તમે સામાન્ય પ્રોગ્રામ ફ્લોમાં પાછા આવવાની ખાતરી આપી છે. પણ જો કોઈ ભૂલ પડે તો પણ, પ્રોગ્રામર કદાચ તેને પ્રથમ સ્થાને કેવી રીતે નિયંત્રિત કરવું તે જાણતા નથી. પરંપરાગત ભૂલ નિયંત્રણમાં વિપરીત, અપવાદો નિયમિત કોડમાંથી ભૂલ-નિયંત્રણ કોડને અલગ કરવાની મંજૂરી આપે છે.