ચકાસાયેલ અપવાદ અને રનટાઈમ અપવાદ વચ્ચેનો તફાવત

Anonim

ચકાસાયેલ અપવાદ વિ રનટાઈમ અપવાદ

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

ચકાસાયેલ અપવાદ શું છે?

ચકાસાયેલ અપવાદો કાં તો વર્ગ જાવાનાં ઑબ્જેક્ટ્સ છે. લાંગ અપવાદ અથવા તેના પેટાવર્ગો (જાવા, લાંગ, રનટાઇમ એક્સેસેશન અને તેના સબક્લાસ સિવાય). ચકાસાયેલ અપવાદો કમ્પાઇલ સમય પર "ચકાસાયેલ" છે. તેનો અર્થ એ કે પ્રોગ્રામરે ક્યાં તો આ અપવાદો કેચ અથવા ફેંકવું જોઈએ, અથવા તો કમ્પાઇલ ફરિયાદ કરશે (કમ્પાઇલર ભૂલને કારણ બનાવશે). આ કારણોસર, ઘણા ચકાસાયેલ અપવાદો પ્રોગ્રામર્સને ખૂબ જ જાણીતા છે. ઉદાહરણ તરીકે, IOException અને તેના પેટા વર્ગોને અપવાદો તપાસવામાં આવે છે, અને જ્યારે પણ પ્રોગ્રામર ફાઇલને ઍક્સેસ કરવા અથવા બદલવાથી સંકળાયેલી હોય છે, કમ્પાઇલર ચકાસણીઓ તેની ખાતરી કરવા માટે કે પ્રોગ્રામર દ્વારા તમામ સંભવિત IOEpsceptions ની કાળજી લેવામાં આવે છે.

એક રનટાઈમ અપવાદ શું છે?

રનટાઈમ અપવાદોમાં જાવા સમાવિષ્ટ છે. લાંગ રનટાઇમ અપવાદ અને તેના બધા ઉપ વર્ગો. સૈદ્ધાંતિક રીતે કહીએ તો, તે ચકાસાયેલ અપવાદો જેવા જ હેતુની સેવા આપે છે, અને ચકાસાયેલ અપવાદ જેવા ફેંકી શકાય છે અથવા નિયંત્રિત કરી શકાય છે, પરંતુ કમ્પાઇલર દ્વારા તેમને નિયંત્રિત કરવામાં આવતી નથી. તેથી, રનટાઇમ અપવાદો અનચેક અપવાદના પરિવારની છે. NullPointerException, NumberFormatEception, ClassCastException અને ArrayIndexOutOfBoundsException એ Java માં સામાન્ય રનટાઇમ અપવાદો છે.

ચેક અપવાદ અને રનટાઈમ અપવાદ વચ્ચે શું તફાવત છે?

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

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