බොහෝ ව්‍යතිරේක පණිවිඩවල ප්‍රයෝජනවත් තොරතුරු අඩංගු නොවන්නේ ඇයි?


226

ව්‍යතිරේක පණිවුඩවල ප්‍රයෝජනවත් තොරතුරු අඩංගු විය යුතු බවට යම් එකඟතාවයක් ඇති බව පෙනේ .

පද්ධති සංරචක වලින් බොහෝ පොදු ව්‍යතිරේකයන් ප්‍රයෝජනවත් තොරතුරු අඩංගු නොවන්නේ ඇයි?

උදාහරණ කිහිපයක්:

  • .NET Listදර්ශකය ප්රවේශ ArgumentOutOfRangeExceptionවන්නේ නැත මට උත්සාහ අනීතික විය බව එම දර්ශකය අගය කියන්නේ, හෝ එය මට ඉඩ පරාසය කියන්න නැහැ.
  • මූලික වශයෙන් MSVC C ++ සම්මත පුස්තකාලයෙන් ලැබෙන සියලුම ව්‍යතිරේක පණිවිඩ මුළුමනින්ම නිෂ් less ල ය (ඉහත ආකාරයටම).
  • .NET හි ඔරකල් ව්‍යතිරේක, ඔබට කියනු ලැබේ (අක්ෂර වින්‍යාසය) "වගුව හෝ දර්ශනය හමු නොවීය", නමුත් කුමන එකක් නොවේ .

එබැවින්, බොහෝ දුරට ව්‍යතිරේක පණිවුඩවල ප්‍රයෝජනවත් වීමට ප්‍රමාණවත් තොරතුරු අඩංගු නොවන බව මට පෙනේ . මගේ අපේක්ෂාවන් ඉක්මවා ගොස් තිබේද? මම ව්‍යතිරේක භාවිතා කිරීම වැරදිද? හෝ සමහරවිට මගේ හැඟීම වැරදි: ව්යතිරේකයක් බහුතරයක් නැහැ ඇත්තටම ප්රයෝජනවත් තොරතුරු සැපයීමට?


60
ආරක්ෂක වෘත්තිකයින්ගේ පැත්තෙන්, "දෝෂ පණිවිඩවල පද්ධතියේ අභ්‍යන්තරය පිළිබඳ විස්තර අඩංගු නොවිය යුතුය" යන්න නියමාකාර නීතියක් බව සැලකිල්ලට ගත යුතුය.
ටෙලාස්ටින්

118
E ටෙලාස්ටින්: ඔබේ පද්ධතිය ප්‍රහාරකයන්ට විවෘත නම් පමණි. ඔබ වෙබ් සේවාදායකයක් ධාවනය කරන්නේ නම්, නිදසුනක් ලෙස, ඔබට අවසාන පරිශීලකයාට දෝෂ සහිත පණිවුඩ ලබා දීමට අවශ්‍යය, නමුත් ඔබට තවමත් සවිස්තරාත්මක දෝෂ පණිවිඩ ඔබේ අන්තයට ලොග් වීමට අවශ්‍යය. පරිශීලකයා ප්‍රහාරකයෙකු නොවන සේවාදායක පාර්ශවීය මෘදුකාංගයක, ඔබට අනිවාර්යයෙන්ම අවශ්‍ය වන්නේ එම දෝෂ පණිවිඩ හැකිතාක් සවිස්තරාත්මක වීමයි, එවිට යම් දෙයක් වැරදී ගොස් ඔබට දෝෂ වාර්තාවක් යවන විට, ඔබ සමඟ වැඩ කිරීමට තරම් තොරතුරු තිබේ හැකි තරම්, මන්ද ඔබට ලැබෙන වාර ගණන එයයි.
මේසන් වීලර්

9
Own ස්නෝමන්: සේවාදායකයාගේ පාර්ශවීය මෘදුකාංගයක් නම් පරිශීලකයාට ප්‍රවේශ විය නොහැක්කේ කුමක්ද? යන්ත්‍රයේ හිමිකරු යන්ත්‍රය සතුව ඇති අතර ඕනෑම දෙයක් ලබා ගත හැකිය.
මේසන් වීලර්


7
ඔබ ලබා ගැනීමට කැමති අමතර තොරතුරු සෑම විටම තිබේ. ඔබ උදාහරණ ලෙස දෙන පණිවිඩ හොඳ යැයි මට පෙනේ. ඔබට ඔවුන් සමඟ ඇති ගැටළුව නිරාකරණය කළ හැකිය. "දෝෂ 0x80001234" ට වඩා බෙහෙවින් හොඳයි (උදාහරණ වින්ඩෝස් යාවත්කාලීනයෙන් දේවානුභාවයෙන්).
usr

Answers:


208

ව්‍යතිරේකවල ප්‍රයෝජනවත් තොරතුරු අඩංගු නොවන්නේ මෘදුකාංග ඉංජිනේරු විනය තුළ ව්‍යතිරේක සංකල්පය තවමත් පරිණත වී නැති නිසා බොහෝ ක්‍රමලේඛකයින් ඒවා සම්පූර්ණයෙන් තේරුම් නොගන්නා අතර එබැවින් ඔවුන් නිසි ලෙස සලකන්නේ නැත.

ඔව්, IndexOutOfRangeExceptionපරාසය ඉක්මවා ගිය නිරවද්‍ය දර්ශකය මෙන්ම එය විසි කළ අවස්ථාවේ වලංගු වූ පරාසය ද අඩංගු විය යුතු අතර එය .NET ධාවන වේලාවේ නිර්මාතෘවරුන් වෙනුවෙන් එය අවමානයට ලක් කරයි. ඔව්, ඔරකල්ගේ table or view not foundව්‍යතිරේකයේ වගුවේ නම හෝ සොයාගත නොහැකි දර්ශනයක් අඩංගු විය යුතු අතර, නැවතත්, එය එසේ නොවීම යන කාරණය මේ සඳහා වගකිව යුතු අය වෙනුවෙන් පිළිකුල් සහගතය.

බොහෝ දුරට, ව්‍යාකූලතාවයට හේතු වී ඇත්තේ ව්‍යතිරේකයන් තුළ මිනිස් කියවිය හැකි පණිවිඩ අඩංගු විය යුතුය යන නොමඟ ගිය මුල් අදහසයි, එමඟින් පැන නගින්නේ ව්‍යතිරේක මොනවාද යන්න පිළිබඳ අවබෝධයක් නොමැතිකමයි, එබැවින් එය විෂම චක්‍රයකි.

ව්‍යතිරේකයේ මිනිස් කියවිය හැකි පණිවිඩයක් තිබිය යුතු යැයි මිනිසුන් සිතන හෙයින්, ව්‍යතිරේකය විසින් ගෙන යනු ලබන ඕනෑම තොරතුරක් මිනිස් කියවිය හැකි පණිවිඩයට සංයුති කළ යුතු යැයි ඔවුහු විශ්වාස කරති, එවිට මිනිස් කියවිය හැකි සියලුම පණිවිඩ ලිවීමට ඔවුන් කම්මැලියි. ගොඩනැඟිලි කේතය, එසේ නැතහොත් එසේ කිරීමෙන් පණිවිඩය දැකිය හැකි ඕනෑම තොරතුරකට නොවැළැක්විය හැකි තොරතුරු ප්‍රමාණයක් ලැබෙනු ඇතැයි ඔවුහු බිය වෙති. (වෙනත් පිළිතුරු මගින් සඳහන් කර ඇති ආරක්ෂක ගැටළු.)

නමුත් මේ කාරණය පිළිබඳ සත්යය හැර යුතු නිසා ඔවුන් ඒ ගැන වද වෙන නොකළ යුතු බව ය නොවන මානව කියවිය හැකි පණිවිඩය අඩංගු වේ. ව්‍යතිරේකයන් යනු ක්‍රමලේඛකයින් පමණක් දැකිය යුතු සහ / හෝ ගනුදෙනු කළ යුතු දේවල් පමණි. අසාර්ථක තොරතුරු පරිශීලකයෙකුට ඉදිරිපත් කිරීමේ අවශ්‍යතාවයක් කවදා හෝ තිබේ නම්, එය ඉතා ඉහළ මට්ටමකින්, නවීන ආකාරයකින් කළ යුතු අතර, සංඛ්‍යානමය වශයෙන් ගත් කල, පරිශීලකයාගේ භාෂාවෙන්, ඉංග්‍රීසි විය නොහැකි ය.

එබැවින්, ක්‍රමලේඛකයින් වන අපට, ව්‍යතිරේකයේ “පණිවිඩය” යනු ව්‍යතිරේකයේ පන්ති නාමය වන අතර, ව්‍යතිරේකයට අදාළ වෙනත් තොරතුරු ව්‍යතිරේකයේ වස්තුවෙහි (අවසාන / කියවීමට පමණක්) සාමාජික විචල්‍යයන් වෙත පිටපත් කළ යුතුය. ඊට වඩා, සෑම සිතාගත හැකි කුඩා ප්‍රමාණයක්. මේ ආකාරයෙන්, කිසිදු පණිවිඩයක් ජනනය කිරීමට (හෝ කළ යුතු) අවශ්‍ය නොවන අතර, එම නිසා කිසිදු ඉදිමුණු ඇස්වලට එය නොපෙනේ.

තෝමස් ඕවන්ස් විසින් පහත දැක්වෙන අදහස් දැක්වීමේදී දක්වන ලද අවධානය යොමු කිරීම සඳහා:

ඔව්, ඇත්තෙන්ම, යම් මට්ටමක, ඔබ ඇත හැර සම්බන්ධයෙන් ලඝු-සටහන පණිවිඩය නිර්මාණය කරන්න. නමුත් ඔබ පවසන දෙය පිළිබඳ ගැටලුව ඔබ දැනටමත් දැක ඇත: එක් අතකින්, තොග හෝඩුවාවක් නොමැතිව ව්‍යතිරේක ලොග් පණිවිඩයක් නිෂ් less ල ය, නමුත් අනෙක් අතට, සම්පූර්ණ ව්‍යතිරේක තොග හෝඩුවාව පරිශීලකයාට දැකීමට ඔබට අවශ්‍ය නැත. නැවතත්, මෙහි ඇති අපගේ ගැටළුව වන්නේ අපගේ ඉදිරිදර්ශනය සාම්ප්‍රදායික භාවිතයන් මග හැරීමයි. ලොග් ලිපිගොනු සාම්ප්‍රදායිකව සරල පා text වලින් යුක්ත වන අතර, එය අපගේ විනය ළදරු අවධියේ දී හොඳ විය හැකි නමුත් සමහර විට තවත් නොවේ: ආරක්ෂක අවශ්‍යතාවයක් තිබේ නම්, ලොග් ගොනුව ද්විමය සහ / හෝ සංකේතනය කළ යුතුය.

ද්විමය හෝ සරල පා text යක් වුවද, ලොග් ගොනුව යෙදුම නිදොස් කිරීමේ තොරතුරු අනුක්‍රමික කරන ප්‍රවාහයක් ලෙස සිතිය යුතුය. එවැනි ප්‍රවාහයක් ක්‍රමලේඛකයින්ගේ ඇස් සඳහා පමණක් වන අතර, ව්‍යතිරේකයක් සඳහා නිදොස් කිරීමේ තොරතුරු ජනනය කිරීමේ කාර්යය ව්‍යතිරේකය නිදොස් කිරීමේ ලොග් ප්‍රවාහයට අනුක්‍රමික කිරීම තරම් සරල විය යුතුය. මේ ආකාරයෙන්, ලොගය දෙස බැලීමෙන් ඔබට ව්‍යතිරේක පංතියේ නම දැක ගත හැකිය, (මම දැනටමත් පවසා ඇති පරිදි, එය සියලු ප්‍රායෝගික අරමුණු සඳහා “පණිවිඩය” වේ) අදාළ සෑම දෙයක්ම විස්තර කරන එක් එක් ව්‍යතිරේක සාමාජික විචල්‍යයන්- සහ ප්‍රායෝගික-ඇතුළත් කිරීමට-ලොගයක්, සහ සමස්ත තොග හෝඩුවාව. මිනිසුන්ට කියවිය හැකි ව්‍යතිරේක පණිවිඩයක හැඩතල ගැන්වීම මෙම ක්‍රියාවලියෙන් කැපී පෙනෙන ලෙස අස්ථානගත වී ඇති ආකාරය සැලකිල්ලට ගන්න .

පීඑස්

මෙම විෂය පිළිබඳ මගේ සිතුවිලි කිහිපයක් මෙම පිළිතුරෙන් සොයාගත හැකිය: හොඳ ව්‍යතිරේක පණිවිඩයක් ලියන්නේ කෙසේද

පීපීඑස්

එය මිනිසුන් ගොඩක් මම පිළිතුරු නැවත වරක් සංශෝධනය නිසා එය ඊටත් වඩා පැහැදිලි දේ මම මෙතන මම යෝජනා කළ යුතුයි යන ද්විමය ලඝු-සටහන ගොනු ගැන මගේ යෝජනාව විසින් ලකුණු ඉඩහරින්න කරන බවට පෙනී යයි නොවේ ලොග් ගොනුව බව යුතුය ද්විමය විය, නමුත් එම අවශ්‍ය නම් ලොග් ගොනුව ද්විමය විය හැකිය.


4
.NET රාමුවේ ඇති සමහර ව්‍යතිරේක පංති පිළිබඳව මම සොයා බැලුවෙමි, මේ ආකාරයේ තොරතුරු ක්‍රමලේඛිකව එකතු කිරීමට ඕනෑ තරම් අවස්ථාවන් ඇති බව පෙනේ. ඒ නිසා මම හිතන්නේ ප්‍රශ්නය "ඔවුන් එසේ නොකරන්නේ මන්ද" යන්නයි. නමුත් මුළු "මිනිස් කියවිය හැකි" දේ සඳහා +1.
රොබට් හාවි

7
ව්‍යතිරේකයන් තුළ මිනිස් කියවිය හැකි අංගයක් අඩංගු නොවිය යුතු බවට මම එකඟ නොවෙමි. යම් මට්ටමක දී, ව්‍යතිරේකය සම්බන්ධයෙන් ලොග් පණිවිඩයක් නිර්මාණය කිරීමට ඔබට අවශ්‍ය විය හැකිය. පරිශීලකයාට කියවිය හැකි ලොග් ගොනුවකට තොග හෝඩුවාවක් ලොග් කිරීම ඔබට නිරාවරණය කිරීමට අවශ්‍ය නොවන ක්‍රියාත්මක කිරීමේ තොරතුරු හෙළි කරන බව මම තර්ක කරමි, එබැවින් මිනිස් කියවිය හැකි පණිවිඩය ලොග් විය යුතුය. දෝෂය අඩංගු ලොග් ගොනුව සමඟ ඉදිරිපත් කළ විට, සංවර්ධකයින්ට ඔවුන්ගේ නිදොස්කරණය ආරම්භ කිරීමට ආරම්භක ස්ථානයක් තිබිය යුතු අතර ව්‍යතිරේකය සිදුවීමට බල කිරීමට හැකි විය යුතුය. මිනිස් කියවිය හැකි සං component ටකය ක්‍රියාත්මක කිරීම ලබා නොදී නිසි ලෙස සවිස්තරාත්මක විය යුතුය.
තෝමස් ඕවන්ස්

44
ඉතින් ක්‍රමලේඛකයා මිනිසුන් නොවේද? මගේ සගයන් දෙස බැලීමෙන් මෙය සනාථ කරන්නේ මා කලක සිට යම් සැකයක් ඇති කර ඇති බවයි ...
gbjbaanb

51
නැවතත්, මෘදුකාංගය සේවාදායකයාගේ පැත්තෙන් පවතින තාක් කල්, පරිශීලකයාට මුළු තොග හෝඩුවාවම දැකීමට ඉඩ දීමේ කිසිදු වරදක් නැත . මා මෙතෙක් වැඩ කර ඇති සෑම වෘත්තීය මෘදුකාංග ව්‍යාපෘතියකම සහ බොහෝ ආධුනිකයන් තුළද, දැනට ක්‍රියාත්මක වන සියලුම නූල්වල සම්පූර්ණ කොටස් හෝඩුවාවන් ඇතුළුව, පාලනයකින් තොරව ව්‍යතිරේකයක් මතු වූ විට සම්පූර්ණ දෝෂයක් ඇති කරන ල ging ු-සටහන් පද්ධතියක් අඩංගු විය. ක්‍රියාවලිය. දෝෂ පණිවිඩය අප වෙත නැවත යැවීම සඳහා පරිශීලකයාට අවශ්‍ය ඕනෑම වේලාවක එය බැලීමට හැකි වේ (එය ප්‍රයෝජනවත් නොවේ, නමුත් අවශ්‍ය නොවේ )! එහි ඇති වරද කුමක්ද?
මේසන් වීලර්

13
ද්විමය පමණක් ලොග් ලිපිගොනු සම්බන්ධයෙන් මට ඒත්තු ගැන්වී නැත . ප්‍රධාන වශයෙන් systemd පිළිබඳ මගේ අත්දැකීම් නිසාය. මෙම ල logs ු-සටහන් බැලීම සඳහා එහි විශේෂ මෙවලම තරමක් අවුල් සහගත වන අතර එය නිර්මාණය කර ඇත්තේ ෂේක්ස්පියර්ගේ වඳුරන්ගේ කමිටුවක් විසිනි. වෙබ් යෙදුමක් සඳහා, ඔබේ ව්‍යතිරේකය දුටු පළමු පුද්ගලයා බොහෝ විට සයිසැඩ්මින් වනු ඇති බව සලකන්න , ඔහුට එය නිවැරදි කිරීමට අවශ්‍ය දෙයක්ද යන්න තීරණය කිරීමට අවශ්‍ය වනු ඇත (උදා: තැටිය අවකාශයෙන් ඉවතට) හෝ ආපසු යන්න සංවර්ධකයින්ට.
මයිකල් හැම්ප්ටන්

46

පද්ධති සංරචක වලින් බොහෝ පොදු ව්‍යතිරේකයන් ප්‍රයෝජනවත් තොරතුරු අඩංගු නොවන්නේ ඇයි?

මගේ අත්දැකීම් අනුව, ව්‍යතිරේකයන්හි ප්‍රයෝජනවත් තොරතුරු අඩංගු නොවීමට හේතු ගණනාවක් තිබේ. මෙම ආකාරයේ හේතු පද්ධති සංරචක සඳහා ද අදාළ වනු ඇතැයි මම අපේක්ෂා කරමි - නමුත් මම නිශ්චිතවම නොදනිමි.

  • ආරක්‍ෂාව ඉලක්ක කරගත් පුද්ගලයින් ව්‍යතිරේකයන් තොරතුරු කාන්දුවීමේ ප්‍රභවයක් ලෙස දකී ( උදාහරණයක් ලෙස ). ව්‍යතිරේකයන්ගේ සුපුරුදු හැසිරීම එම තොරතුරු පරිශීලකයාට පෙන්වීම බැවින්, ක්‍රමලේඛකයින් සමහර විට ප්‍රවේශම්කාරී පැත්තෙන් වැරදියට වැටේ.
  • C ++ හි, මා විසින් අල්ලා ගැනීමේ කොටස් වල මතකය වෙන් කිරීමට එරෙහිව තර්ක අසා ඇත (හොඳ පණිවිඩ යැවීම සඳහා අවම වශයෙන් සමහර සන්දර්භයන් බොරු). එම වෙන් කිරීම කළමනාකරණය කිරීම අසීරු වන අතර වඩාත් නරක නම් එහි මතකයෙන් බැහැර වීමට හේතු විය හැක - බොහෝ විට ඔබගේ යෙදුම බිඳ වැටීම හෝ මතකය කාන්දු වීම. මතකය වෙන් නොකර ව්‍යතිරේකයන් මනාව හැඩගස්වා ගැනීම අසීරු වන අතර, ක්‍රමලේඛකයින් මෙන් එම පුහුණුව භාෂා අතර සංක්‍රමණය වන්නට ඇත.
  • ඔවුන් දන්නේ නැහැ. මම අදහස් කලේ, එහි සිටින අවස්ථාවන්හීදී කේතය ඇත එහිදී කිසිදු වැරදි ගොස් දේ අදහසක්. කේතය නොදන්නේ නම් - එය ඔබට පැවසිය නොහැක.
  • ඉංග්‍රීසි පමණක් නූල් පද්ධතියට ඇතුළත් කිරීම ප්‍රාදේශීයකරණ ගැටළු වලක්වා ඇති ස්ථානවල මම වැඩ කර ඇත්තෙමි - ඉංග්‍රීසි කථාකරන සහායක කාර්ය මණ්ඩලය පමණක් කියවිය හැකි ව්‍යතිරේකයන් සඳහා පවා.
  • සමහර ස්ථානවල, ව්‍යතිරේකයන් ප්‍රකාශයන් මෙන් භාවිතා වන බව මම දැක ඇත්තෙමි. යම් දෙයක් සිදු වී නැති බව හෝ වෙනසක් එක් ස්ථානයක සිදු කර ඇති නමුත් වෙනත් ස්ථානයක සිදු නොවන බවට පැහැදිලි, loud ෝෂාකාරී පණිවිඩයක් ලබා දීමට ඔවුන් එහි සිටී. මේවා බොහෝ විට අද්විතීය වන අතර හොඳ පණිවිඩයක් අනුපිටපත් කිරීමේ උත්සාහයක් හෝ ව්‍යාකූල විය හැකිය.
  • මිනිසුන් කම්මැලි, ක්‍රමලේඛකයින් බොහෝ දෙනාට වඩා වැඩිය. ප්‍රීතිමත් මාවතට වඩා සුවිශේෂී මාවතේ අපි අඩු කාලයක් ගත කරන අතර මෙය අතුරු ආබාධයකි.

මගේ අපේක්ෂාවන් ඉක්මවා ගොස් තිබේද? මම ව්‍යතිරේක භාවිතා කිරීම වැරදිද?

කරුණාව? මම කිව්වේ, ව්‍යතිරේකයන්ට හොඳ පණිවිඩ තිබිය යුතුයි, නමුත් ඒවාද ව්‍යතිරේකය . සුවිශේෂී තත්වයන් මඟහරවා ගැනීම සඳහා ඔබ ඔබේ කාලය වැය කළ යුතුය, නැතහොත් සුවිශේෂී තත්වයන් හැසිරවීමට කේත ලිවීම (පණිවිඩය නොසලකා හැරීම), කේතීකරණයේදී ඒවා අන්තර්ක්‍රියාකාරී ප්‍රතිපෝෂණ යාන්ත්‍රණයක් ලෙස භාවිතා නොකිරීම. නිදොස් කිරීමේ අරමුණු සඳහා ඒවා භාවිතා කිරීම වැළැක්විය නොහැක, නමුත් බොහෝ අවස්ථාවන්හිදී එය අවම වශයෙන් තබා ගත යුතුය. මෙම ගැටළුව ඔබ දුටු විට, ඔබ ඒවා වළක්වා ගැනීමේදී ප්‍රමාණවත් තරම් කාර්යයක් නොකිරීම ගැන මා කනස්සල්ලට පත්ව සිටී.


මෙය සී ලෙස ටැග් කර ඇති බව මම දනිමි, නමුත් සමහරුන්ට (නිවැරදිව හෝ වැරදි ලෙස) ව්‍යතිරේකය මත පදනම් වූ දෝෂ හැසිරවීම සහ වාර්තාකරණය මත දැඩි ලෙස රඳා පැවතිය හැකි බැවින් ඔබේ අවසාන ඡේදය සියලු භාෂාවන්ට අදාළ නොවන බව මම එකතු කළ යුතුය .
ලිලියන්තල්

1
Il ලිලියන්තල් - වැනි? මට හුරුපුරුදු කිසිම භාෂාවක් එවැනි දෙයක් නිතිපතා කරන්නේ නැත.
ටෙලාස්ටින්

1
මම හිතන්නේ මෙම පිළිතුරට හොඳ අන්තර්ගතයන් රාශියක් ඇත, නමුත් එය "ඔවුන් කළ යුතුය" යන අවසාන රේඛාව පැවසීමෙන් වැළකී සිටියි.
djechlin

3
ස්තූතියි. ඔබේ සැලකිල්ල පදනම් විරහිත ය (මම බලාපොරොත්තු වෙමි :-). නමුත් එම ඒකක පරීක්ෂණයෙහි වැරැද්ද කුමක්දැයි සොයා බැලීමට මම අතිරේක මිනිත්තුවක් ගත කරන සෑම අවස්ථාවකම හෝ කේත විශ්ලේෂණය සඳහා අමතර කාලයක් ගත කරන විට ලොග්ෆයිල් තොරතුරු නොමැති නිසා, සමහර පණිවිඩ වල මග හැරිය නොහැකි තරමට මම කෝපයට පත් වෙමි :-)
මාටින් බා

E ටෙලස්ටින් SAP හි හිමිකාර ABAP සතුව ව්‍යතිරේක පංති සැකැස්මක් තුළ පණිවිඩයක් අඩංගු විය හැකි අතර, එය මූලික වශයෙන් විශේෂයෙන් අදහස් කරන්නේ වැඩසටහන් තත්වය (සාර්ථකත්වය, අසාර්ථකත්වය, අනතුරු ඇඟවීම) පරිශීලකයාට ගතික (බහුභාෂා) පණිවිඩයක් වාර්තා කිරීමට ය. මම පිළිගන්නවා මේ වගේ දෙයක් කොතරම් පුළුල්ද කියලා මම දන්නේ නැහැ, නැතිනම් එය භාෂාවලින් පවා ධෛර්යමත් කළ හැකි නම් එය කළ හැකි නමුත් අවම වශයෙන් එකක් (කණගාටුදායක ලෙස) පොදු භාවිතයක් තිබේ.
ලිලියන්තල්

12

මට C # අත්දැකීම් හෝ C ++ හි අතිරික්තයක් නොමැත, නමුත් මට මෙය ඔබට පැවසිය හැකිය - සංවර්ධකයා විසින් ලියන ලද ව්‍යතිරේක 10 න් 9 ක්ම ඔබ මෙතෙක් සොයා ගන්නා ඕනෑම සාමාන්‍ය ව්‍යතිරේකයකට වඩා ප්‍රයෝජනවත් වේ.

ඉතා මැනවින් ඔව්, සාමාන්‍ය ව්‍යතිරේකයක් මඟින් දෝෂය සිදුවූයේ ඇයිද යන්න ඔබට පෙන්වා දෙනු ඇති අතර ඔබට එය පහසුවෙන් නිවැරදි කළ හැකිය - නමුත් යථාර්ථවාදීව, විවිධ වර්ගයේ ව්‍යතිරේක විසි කළ හැකි බහු පන්ති සහිත විශාල යෙදුම්වල, හෝ එකම ආකාරයේ ව්‍යතිරේකයන්, පෙරනිමි පණිවිඩය මත යැපීමට වඩා වැරදි ප්‍රති return ල සඳහා ඔබේ ප්‍රතිදානය ලිවීම සැමවිටම වටී.

බොහෝ මිනිසුන් පෙන්වා ඇති පරිදි, සමහර යෙදුම් නැති නිසා මෙම, එය විය යුතු ආකාරය වේ අවශ්ය ඔවුන් පරිශීලක ආරක්ෂක හේතූන් මත, බලන්න හෝ ඒවා අවුල් වළක්වා ගැනීමට අවශ්ය නොවන දෝෂයක් පණිවිඩය විසි කිරීමට.

ඒ වෙනුවට, ඔබේ යෙදුමේ කුමන ආකාරයේ දෝෂ ඇතිවිය හැකිදැයි ඔබ අපේක්‍ෂා කළ යුතුය (සහ සෑම විටම දෝෂ ඇතිවේ) සහ ගැටලුව හඳුනා ගැනීමට ඔබට උපකාර වන දෝෂ හඳුනාගැනීමේ පණිවිඩ ලියන්න.

මෙය සැමවිටම ඔබට උදව් නොකරනු ඇත - මන්දයත් කුමන දෝෂ පණිවිඩයක් ප්‍රයෝජනවත් වේදැයි ඔබට සැමවිටම අපේක්ෂා කළ නොහැකි බැවිනි - නමුත් එය දිගු කාලීනව ඔබේ යෙදුම වඩා හොඳින් අවබෝධ කර ගැනීමේ පළමු පියවර වේ.


7

"පද්ධති සංරචක" (සම්මත පුස්තකාල පංති) මගින් විසි කරන බොහෝ ව්‍යතිරේකයන් ප්‍රයෝජනවත් තොරතුරු අඩංගු නොවන්නේ මන්ද යන ප්‍රශ්නය විශේෂයෙන් අසයි.

අවාසනාවකට මෙන්, බොහෝ සංවර්ධකයින් මූලික පුස්තකාලවල මූලික සංරචක ලියන්නේ නැත, සවිස්තරාත්මක සැලසුම් ලේඛන හෝ වෙනත් සැලසුම් තාර්කිකයන් අනිවාර්යයෙන්ම ප්‍රසිද්ධ කරනු නොලැබේ. වෙනත් වචන වලින් කිවහොත්, අපි කිසි විටෙකත් ස්ථිරවම නොදැන සිටිය හැකිය.

කෙසේ වෙතත්, සවිස්තරාත්මක ව්‍යතිරේක තොරතුරු යෝග්‍ය හෝ වැදගත් නොවන්නේ මන්ද යන්න මතක තබා ගත යුතු ප්‍රධාන කරුණු දෙකක් තිබේ:

  1. ඕනෑම ආකාරයකින් කේත ඇමතීමෙන් ව්‍යතිරේකයක් භාවිතා කළ හැකිය: සම්මත පුස්තකාලයකට ව්‍යතිරේකය භාවිතා කරන ආකාරය පිළිබඳ සීමාවන් තැබිය නොහැක. විශේෂයෙන්, එය පරිශීලකයාට පෙන්වනු ඇත. අරාව දර්ශකය සීමාවෙන් බැහැරව සලකා බලන්න: මෙය ප්‍රහාරකයාට ප්‍රයෝජනවත් තොරතුරු ලබා දිය හැකිය. යෙදුමක් විසි කළ ව්‍යතිරේකය භාවිතා කරන්නේ කෙසේද යන්න හෝ එය කුමන ආකාරයේ යෙදුමක් (උදා: වෙබ් යෙදුම හෝ ඩෙස්ක්ටොප්) භාවිතා කරන්නේ කෙසේද යන්න භාෂා නිර්මාණකරුට අවබෝධයක් නැත, එබැවින් තොරතුරු අතහැර දැමීම ආරක්ෂක දෘෂ්ටිකෝණයකින් ආරක්ෂිත විය හැකිය.

  2. ව්‍යතිරේක පරිශීලකයාට පෙන්විය යුතු නොවේ . ඒ වෙනුවට, සුහද දෝෂ පණිවිඩයක් ප්‍රදර්ශනය කර, ප්‍රහාරකයාට ප්‍රවේශයක් නොමැති ස්ථානයකට ව්‍යතිරේකය ලොග් කරන්න (අදාළ නම්). දෝෂය හඳුනාගත් පසු, සංවර්ධකයෙකු කේතය හරහා නිදොස්කරණය කළ යුතුය, සිරස් රාමු සහ තාර්කික මාර්ග පරීක්ෂා කළ යුතුය. මෙම අවස්ථාවෙහිදී, ව්‍යතිරේකයකට කවදාවත් බලාපොරොත්තු විය නොහැකි තරම් තොරතුරු සංවර්ධකයා සතුව ඇත.


3
1. මෙම නිර්ණායක මත පදනම්ව, තොරතුරු යනු කුමක්ද යන්න සාපේක්ෂව අත්තනෝමතික ලෙස පෙනේ ("දර්ශකය පරාසයෙන් පිටත", තොග හෝඩුවාව) සහ (දර්ශකයේ වටිනාකම) පෙන්වා නැත. 2. අදාළ ගතික අගයන් දන්නා විට නිදොස් කිරීම බොහෝ වේගවත් හා පහසු විය හැකිය. නිදසුනක් ලෙස, ගැටළුව අසාර්ථක වූ කේත කැබැල්ලට කුණු කන්දක්ද, නැතහොත් එම කේතය හොඳ ආදානය සමඟ නිවැරදිව කටයුතු කිරීමට අපොහොසත් වී ඇත්දැයි එය බොහෝ විට ඔබට කියනු ඇත
බෙන් ආරොන්සන්

En බෙන්ආරොන්සන් ව්‍යතිරේකයේ අනන්‍යතාවය / පංතිය අපට දෝෂයේ වර්ගය පවසයි. මගේ අදහස නම් ආරක්ෂාව සඳහා විස්තර අතහැර දැමිය හැකිය (එනම් දෝෂයට හේතු වූ නිශ්චිත වටිනාකම). ප්‍රහාරකයාට තොරතුරු හෙළි කරමින් පරිශීලක ආදානය වෙත එම අගය සොයාගත හැකිය.

Own ස්නෝමන් මම සිතන්නේ සම්පුර්ණ තොග හෝඩුවාවක් ලබා ගත හැකි වන විට ආරක්ෂාව සලකා බැලිය යුතු අතර දර්ශක අංකය එසේ නොවේ. බෆරය පිටාර ගැලීම ගැන සොයා බලන ප්‍රහාරකයෙකු මට තේරෙන බව විශ්වාසයි, නමුත් බොහෝ ව්‍යතිරේකයන් තරමක් ආරක්‍ෂිත දත්ත ද අතහැර දමයි (උදා: ඔරකල් වගුව සොයාගත නොහැකි විය)
gbjbaanb

bgbjbaanb කවුද කියන්නේ අපි සම්පූර්ණ තොග හෝඩුවාව පරිශීලකයාට පෙන්විය යුතුයි කියා?

1
එම අවබෝධය බෙදා ගැනීම ගැන ස්තූතියි. පුද්ගලිකව, මම එකඟ නොවන අතර ආරක්ෂක තර්කය සම්පුර්ණ වැරැද්දක් යැයි සිතමි, නමුත් එය තාර්කිකත්වයක් විය හැකිය.
මාටින් බා

4

පළමුවෙන්ම, තත්පර 4 කින් නිශ්චිත කේත රේඛාවට සහ උප විධානයට ඔබව ගෙන එන තොරතුරු ඩයග් පණිවිඩය පටවා තිබුණත්, පරිශීලකයින් එය කිසි විටෙකත් ලියා හෝ ආධාරක ජනතාව වෙත නොයැවීමට ඉඩ තිබේ. ඔබට කියනු ඇත "හොඳයි එය උල්ලං about නය කිරීමක් ගැන යමක් පැවසුවා ... එය සංකීර්ණ බවක් මම නොදනිමි!"

මම දැන් අවුරුදු 30 කට වැඩි කාලයක් තිස්සේ මෘදුකාංග ලිවීම සහ අනෙක් මෘදුකාංගවල ප්‍රති results ල සඳහා සහාය වෙමින් සිටිමි. පුද්ගලිකව, ව්‍යතිරේක පණිවිඩයක වර්තමාන ගුණාත්මකභාවය ඔවුන්ගේ ආකෘතියට ගැලපෙන පරිදි අවසාන ප්‍රති results ල සිදු වූ ආකාරය නොසලකා ආරක්ෂාවට කිසිදු සම්බන්ධයක් නැත. විශ්වය, අපගේ කර්මාන්තයේ බොහෝ දෙනෙක් මුලින් ස්වයං අධ්‍යාපනය ලැබූ අය වන අතර ඔවුන් කිසි විටෙකත් සන්නිවේදනයේ පාඩම් ඇතුළත් කර නැත. සමහර විට අපි සියලු නව කෝඩරයන් වසර දෙකක කාලයක් නඩත්තු තත්වයකට ඇද දැමුවහොත් ඔවුන්ට වැරැද්ද කුමක්දැයි සොයා බැලීමට කටයුතු කළ යුතුව තිබේ නම්, අවම වශයෙන් යම් ආකාරයක නිරවද්‍යතාවයක වැදගත්කම ඔවුන් තේරුම් ගනීවි.

මෑතකදී නැවත සකස් කරන ලද අයදුම්පතකදී, ප්‍රතිලාභ කේත කණ්ඩායම් තුනෙන් එකකට අයත් වන බවට තීරණයක් ගන්නා ලදි:

  • 0 සිට 9 දක්වා අමතර තොරතුරු සමඟ සාර්ථකත්වය තුළින් සාර්ථක වනු ඇත.
  • 10 සිට 99 දක්වා මාරාන්තික නොවන (අයකර ගත හැකි) දෝෂ වනු ඇත, සහ
  • 101 සිට 255 දක්වා මාරක දෝෂ වනු ඇත.

(100 කිසියම් හේතුවක් නිසා අතහැර දමා ඇත)

ඕනෑම විශේෂිත කාර්ය ප්‍රවාහයකදී, අපගේ සිතුවිල්ල නැවත භාවිතා කරන ලදි හෝ සාමාන්‍ය කේතය මාරාන්තික දෝෂ සඳහා සාමාන්‍ය ප්‍රතිලාභ (> 199) භාවිතා කරයි, එමඟින් වැඩ ප්‍රවාහයක් සඳහා මාරාන්තික දෝෂ 100 ක් අපට ඉතිරි වේ. පණිවිඩයේ සුළු වෙනස් දත්ත සහිතව, ගොනුව සොයා නොගැනීම වැනි දෝෂ සියල්ලටම එකම කේතය භාවිතා කළ හැකි අතර පණිවිඩ සමඟ වෙනස හඳුනාගත හැකිය.

කේතය කොන්ත්‍රාත්කරුවන්ගෙන් ආපසු පැමිණි විට, සෑම මාරාන්තික දෝෂයක්ම පාහේ ආපසු කේතය 101 වන විට අපගේ පුදුමය ඔබ විශ්වාස නොකරනු ඇත.

සලකා බැලූ සියල්ලම ඔබගේ ප්‍රශ්නයට පිළිතුර පණිවුඩ එතරම් අර්ථ විරහිත බැවින් මුලින් නිර්මාණය කළ විට ඒවා කිසිවෙකු වෙත නොපැමිණෙන ස්ථාන හිමිකරුවන් විය යුතුය. අවසානයේදී මිනිසුන් විසින් ගැටළු නිරාකරණය කරන්නේ කෙසේදැයි සොයා ගත්තේ පණිවිඩ නිසා නොව ඒවා විසුරුවා හරින්න.

එතැන් පටන්, ස්වයං ඉගැන්වූ පිරිසට කිසි විටෙකත් ව්‍යතිරේකයක අඩංගු විය යුතු දේ පිළිබඳ හොඳ උදාහරණයක් නොතිබුණි. ඊට වඩා වැඩි පරිශීලකයින් පණිවිඩ කියවන්නේ නැති බව පවසන්න, එය සහය දැක්වීම සඳහා යැවීමට වඩා අඩුවෙන් උත්සාහ කරන්න (භාවිතා කළ අය විසින් කපා ඉවත් කරන ලද දෝෂ පණිවිඩ මම දැක ඇත්තෙමි. බොහෝ තොරතුරු මෙන් පෙනුන අතර මට ඒ සියල්ල අවශ්‍ය නොවනු ඇත, එබැවින් ඔවුන් අහඹු ලෙස එයින් පොකුරක් ඉවත් කළහ.

ඊලඟ පරම්පරාවේ කේත රචකයන්ට වඩා වැඩි ගණනක් (සියල්ලම නොව බොහෝ දේ) සමඟ එයට මුහුණ දීමට ඉඩ දෙන්න, එය වැඩිපුර වැඩ කරන්නේ නම් සහ ෆ්ලෑෂ් එකතු නොකරන්නේ නම්, එය වටින්නේ නැත ...

අවසාන සටහන: දෝෂ පණිවිඩයකට දෝෂයක් / ආපසු කේතයක් ඇතුළත් නම්, ක්‍රියාත්මක කළ මොඩියුලවල කොතැනක හෝ "කොන්දේසියක් ආපසු කේත අගය නම්" වැනි යමක් කියවන රේඛාවක් තිබිය යුතු බව මට පෙනේ. සිදු විය. මෙය සරල තාර්කික ප්‍රවේශයක් සේ පෙනේ, නමුත් මගේ ජීවිතය සඳහා, CODE 80241013 හෝ වෙනත් සුවිශේෂී හඳුනාගැනීමක් මත කවුළු උත්ශ්‍රේණිගත කිරීම අසමත් වූ විට සිදු වූ දේ ඔබට මයික්‍රොසොෆ්ට් වෙතින් ලබා දීමට උත්සාහ කරන්න. කරුණාවන්තයි, එහෙම නේද?


8
"... සෑම මාරක දෝෂයක්ම පාහේ ආපසු කේතය 101 වන විට අපගේ පුදුමය ඔබ විශ්වාස නොකරනු ඇත." ඔයා හරි. කොන්ත්‍රාත්කරු ඔබේ උපදෙස් අනුගමනය කළ විට ඔබ පුදුමයට පත් වූ බව මම විශ්වාස නොකරමි.
ඔඩල්රික්

3
chances are the users will never write it down... and you will be told "Well it said something about a violation..." තොග හෝඩුවාව අඩංගු දෝෂ වාර්තාව ස්වයංක්‍රීයව ජනනය කිරීමට සහ එය ඔබේ සේවාදායකයට යැවීමට පවා ඔබ ව්‍යතිරේක ල ging ු-සටහන් මෙවලමක් භාවිතා කරන්නේ මේ නිසා ය. මට එක පරිශීලකයෙක් එක් වරක් ඉතා තාක්‍ෂණික නොවීය. ඇය දෝෂ ලොගර් වෙතින් පණිවිඩයක් ඉදිරිපත් කරන සෑම අවස්ථාවකම එය "මම කළ වැරැද්ද කුමක්දැයි මට විශ්වාස නැත, නමුත් ..." වැනි දෙයක් සිදුවනු ඇත. මෙම දෝෂයේ අර්ථය දෝෂය මගේ පැත්තේ බව මා කොපමණ වාරයක් පැහැදිලි කළද . නමුත්, මම සෑම විටම ඇයගෙන් වැරදි වාර්තා ලබා ගත්තා!
මේසන් වීලර්

3

ව්‍යතිරේකයන් තුළ හැකි තරම් තොරතුරු අඩංගු විය යුතු බව හෝ අවම වශයෙන් සාමාන්‍ය විය යුතු බව මම එකඟ වෙමි. සොයා නොගත් නඩුවේ, මේසයේ නම හොඳයි.

නමුත් ඔබට ව්‍යතිරේකය ලැබුණු කේතයේ ස්ථානයේ ඔබ කිරීමට උත්සාහ කළ දේ ගැන ඔබ තව බොහෝ දේ දනී. ඔබගේ පාලනයෙන් බැහැර පුස්තකාලයක යම් දෙයක් වැරදී ගිය විට තත්වය නිවැරදි කිරීමට ඔබට බොහෝ විට කළ නොහැකි අතර, යම් දෙයක් වැරදී ඇති අවස්ථාව පිළිබඳ වඩාත් ප්‍රයෝජනවත් තොරතුරු එක් කළ හැකිය.

වගුව සොයාගත නොහැකි වූ විට, සොයාගත නොහැකි වගුව STUDENTS ලෙස හැඳින්වෙන බව ඔබට පැවසුවහොත් එය ඔබට බොහෝ සෙයින් උපකාරී නොවනු ඇත, මන්ද ඔබට එවැනි වගුවක් නොමැති නිසා සහ එම නූල ඔබේ කේතයේ කොතැනකවත් නොමැති නිසාය.

නමුත් ඔබ ව්‍යතිරේකය අල්ලා එය ක්‍රියාත්මක කිරීමට උත්සාහ කළ SQL ප්‍රකාශය සමඟ එය නැවත පෙරළා දැමුවහොත්, ඔබට වඩා හොඳ වනු ඇත, මන්ද ඔබ රොබට් යන නාම ක්ෂේත්‍රය සමඟ වාර්තාවක් ඇතුළත් කිරීමට උත්සාහ කළ බව පෙනේ ); ටේබල් ශිෂ්‍යයන් අතහරින්න; (සෑම විටම xkcd පවතී!)

එබැවින් තොරතුරු දැනගැනීමේ ව්‍යතිරේකයන්ට වඩා අඩුවෙන් සටන් කිරීමට: ඔබ කිරීමට උත්සාහ කළ දෙයට විශේෂිත වූ වැඩි තොරතුරු සමඟ නැවත උත්සාහ කරන්න.

පුස්තකාල නිෂ්පාදකයින්ගේ අවධානය ව්‍යතිරේක පණිවුඩ වඩා හොඳ කිරීම කෙරෙහි යොමු නොවීමට හේතුව විය හැකි හේතුව පිළිබඳ ප්‍රශ්නයට වැඩි පිළිතුරක් ලබා දීම සඳහා මම බොහෝ විට එකතු කළ යුතුය, ඔවුන් නොදැන සිටීම අසාර්ථක වූ යමක් උත්සාහ කර ඇත්තේ ඇයි, එම තර්කනය ඇමතුම් කේතයේ ඇත.


උදා: C ++ හි ඔබ throw_with_nestedබොහෝ දේ භාවිතා කළ යුතුය .
සැතපුම් මාර්ගය

3

තරමක් වෙනස් පිළිතුරක් ලබා දීම සඳහා: වැරදි කේතය බොහෝ විට සිදු කර ඇත්තේ පිරිවිතර සඳහා ය:

  • ශ්‍රිතයට X ලැබෙන අතර Y ලබා දෙයි
  • X අවලංගු නම්, ව්‍යතිරේකය විසි කරන්න

අවම වේලාවක සහ අවම වශයෙන් කලබලකාරී ලෙස පිරිවිතරයට (සමාලෝචනයේදී / පරීක්‍ෂණයෙන් ප්‍රතික්ෂේප වේ යැයි බියෙන්) නිශ්චිතවම ලබා දීමට පීඩනය එක් කරන්න, එවිට ඔබට සම්පුර්ණයෙන්ම අනුකූල සහ උදව් කළ නොහැකි පුස්තකාල ව්‍යතිරේකයක් සඳහා ඔබේ වට්ටෝරුව තිබේ.


3

ව්‍යතිරේකයන්ට භාෂාවක් සහ ක්‍රියාත්මක කිරීමේ විශේෂිත පිරිවැයක් ඇත.

නිදසුනක් ලෙස, ඇමතුම් රාමුව විසි කිරීම සහ ඇමතුම් රාමුව අල්ලා ගැනීම අතර ඇති සියලුම ජීව දත්ත විනාශ කිරීමට C ++ ව්‍යතිරේක අවශ්‍ය වන අතර එය මිල අධිකය. එබැවින්, ව්‍යතිරේකයන් බොහෝ දේ භාවිතා කිරීමට ක්‍රමලේඛකයින් කැමති නැත.

ඔකාම්ල් හි, ව්‍යතිරේකය විසි කිරීම සී තරම් වේගවත් ය setjmp (එහි පිරිවැය ගමන් කළ ඇමතුම් රාමු ගණන මත රඳා නොපවතී), එබැවින් සංවර්ධකයින්ට එය විශාල වශයෙන් භාවිතා කළ හැකිය (සුවිශේෂී නොවන, ඉතා සුලභ අවස්ථාවන් සඳහා පවා). ඊට හාත්පසින්ම වෙනස්ව, C ++ ව්‍යතිරේක ප්‍රමාණවත් තරම් බර බැවින් ඔබ ඔකාම් හි මෙන් ඒවා බොහෝ දුරට භාවිතා නොකරනු ඇත.

සාමාන්‍ය නිදසුනක් නම්, පුනරාවර්තන සෙවීමක් හෝ ගවේෂණයක් තරමක් ගැඹුරු පුනරාවර්තනයක් තුළ “නැවැත්විය” හැකි ය (උදා: ගසක කොළයක් සොයා ගැනීම හෝ ඒකාබද්ධ කිරීමේ ශ්‍රිතයක්). සමහර භාෂාවලින් සෑම ඇමතුමකටම එම තත්වය ප්‍රචාරය කිරීම ඉක්මන් (වඩා මෝඩ) වේ. වෙනත් භාෂාවලින්, ව්‍යතිරේකයක් විසි කිරීම ඉක්මන් වේ.

එබැවින් භාෂාව (සහ එය භාවිතා කරන සංවර්ධකයින්ගේ පුරුදු) මත පදනම්ව, ව්‍යතිරේකයකට බොහෝ ප්‍රයෝජනවත් තොරතුරු රැගෙන යා හැකිය, නැතහොත් ඊට පටහැනිව ඉක්මන් දේශීය නොවන පැනීමක් ලෙස භාවිතා කළ හැකි අතර ඉතා ප්‍රයෝජනවත් දත්ත පමණක් රැගෙන යා හැකිය.


6
"නිදසුනක් ලෙස, ඇමතුම් රාමුව විසි කිරීම සහ ඇමතුම් රාමුව අල්ලා ගැනීම අතර ඇති සියලුම ජීව දත්ත විනාශ කිරීමට C ++ ව්‍යතිරේක අවශ්‍ය වේ. එය මිල අධිකය. එබැවින් ක්‍රමලේඛකයින් ව්‍යතිරේක බොහෝමයක් භාවිතා කිරීමට කැමති නැත." මුළු කපටිය. C ++ ව්‍යතිරේකයන්ගේ ප්‍රධාන ශක්තිය වන්නේ විනාශ කරන්නන් නිර්ණායක ලෙස හැඳින්වීමයි. ඔවුන් පනින්නේ නම් කිසිවෙකු ඒවා භාවිතා නොකරනු ඇත.
සැතපුම් මාර්ගය

මම එය දනිමි, නමුත් එය C ++ ව්‍යතිරේකයන් ඔකාම්ල් මෙන් නොවන අතර ඔබ ඔකාම්ල්හි මෙන් ඒවා භාවිතා නොකරයි.
බැසිල් ස්ටැරින්කෙවිච්

5
C ++ හි පාලන ප්‍රවාහය සඳහා ඔබ C ++ ව්‍යතිරේක භාවිතා නොකරන්නේ මූලික වශයෙන් එසේ කිරීමෙන් කේතය කියවිය නොහැකි වන අතර තේරුම් ගැනීමට අපහසු වේ.
සැතපුම් මාර්ගය

-2

ඔබ දර්ශකය හෝ වටිනාකම අවශ්ය පරාසය හිතන්නේ හෝ මේසය නම කරයි වේ ව්යතිරේකයක් සඳහා ප්රයෝජනවත් විස්තර?

ව්‍යතිරේක යනු දෝෂ හැසිරවීමේ යාන්ත්‍රණයක් නොවේ; ඒවා ප්‍රතිසාධන යාන්ත්‍රණයකි.

ව්‍යතිරේකයේ කාරණය වන්නේ ව්‍යතිරේකය හැසිරවිය හැකි කේත මට්ටම දක්වා බුබුලු දැමීමයි. ඕනෑම තැනක එම මට්ටමින්, වන හෝ, ඔබ ඇති අවශ්ය තොරතුරු, හෝ එය අදාළ නැත. ඔබට අවශ්‍ය තොරතුරු තිබේ නම්, නමුත් එයට ක්ෂණික ප්‍රවේශයක් නොමැති නම්, ඔබ ව්‍යතිරේකය සුදුසු මට්ටමින් හසුරුවන්නේ නැත.

අමතර තොරතුරු ප්‍රයෝජනවත් විය හැකි ස්ථානයක් ගැන මට සිතිය හැකි එක් අවස්ථාවකි , ඔබේ යෙදුමේ නිරපේක්ෂ ඉහළ මට්ටමේ දී ඔබ බිඳ වැටී දෝෂ ඩම්ප් එකක් නිකුත් කරයි; නමුත් මෙම තොරතුරු වෙත ප්‍රවේශ වීම, සම්පාදනය කිරීම සහ ගබඩා කිරීම ව්‍යතිරේකයේ කාර්යය නොවේ.

මම කියන්නේ නැහැ ඔබට සෑම තැනකම "නව ව්‍යතිරේකය විසි කර" හොඳ යැයි කියන්න, නරක ව්‍යතිරේක ලිවිය හැකිය. නමුත් අදාළ තොරතුරු ඇතුළත් කිරීම ඒවා නිසි ලෙස භාවිතා කිරීම අත්‍යවශ්‍ය නොවේ.


අතුරුදහන් වූ දත්ත සමුදා වගුවේ නම අදාළ නොවන බව මම විස්තර නොකරමි, ඔබ කරන කාරණය මට වැටහී, අනුකම්පා කළද. මම ඔබට ඉහළ ඡන්දයක් ලබා දුන්නා.
ඩැනියෙල් හොලින්රේක්

1
An ඩැනියෙල් හොලින්රේක් ඔව්, වගුවේ නම අනිවාර්යයෙන්ම උදාහරණ වලට වඩාත්ම අදාළ නොවේ. මා සමඟ වැඩ කරන කේතයේ, මේ ආකාරයේ ගැටලුවක් අවපාතයට පත්වන අතර වගුවේ නම හසුරුවන ආකාරය දෙස බැලීමෙන් වැරදි දේ පිළිබඳ ඉඟි ලබා දේ. මම මේවා ව්‍යතිරේකයට අදාළ නොවන්නේ මන්දැයි උදාහරණයක් ගැන සිතා බැලීමට උත්සාහ කරමි; සමහර විට මට මෙය භාවිතා කළ හැකිය ...
ඔඩල්රික්

මම එකඟවෙන්නේ නැහැ. ව්යතිරේකයක් හැසිරවීම සඳහා අමතර විස්තර අවශ්ය නොවනු ඇත, මන්ද ඔබට යෙදුම බිඳවැටීමෙන් ආරක්ෂා කර ගැනීමට අවශ්ය නමුත් අවසානයේ එය ක්රියාත්මක නොවීමට හේතුව සහ එය නිවැරදි කිරීමට ඔබට හැකි වනු ඇත. ඔබට කිසිදු හෝඩුවාවක් නොමැති නමුත් ව්‍යතිරේක වර්ගය නම් හොඳ පෙනුමක් නිදොස්කරණය කිරීම.
t3chb0t

@ t3chb0t ව්‍යතිරේකයේ සහ මතක ඩම්ප් සහ අනෙක් සියල්ල සඳහා තොග හෝඩුවාව සහ පන්තිය එයයි. ගනුදෙනුකරුවකු අමතා "පරිගණකය මට පවසන්නේ එය දර්ශක 5 වෙත ප්‍රවේශ වීමට උත්සාහ කළ බවත් එය එහි නොමැති බවත්" නම් එය ඔබට උදව් කරන්නේ කෙසේද? එය උදව් විය හැක්කේ ඔබ ලැයිස්තුව අනුක්‍රමික කළහොත් සහ ලැයිස්තුව සඳහා සන්දර්භය සහ ප්‍රයෝජනවත් විය හැකි වෙනත් ඕනෑම දෙයක් පමණි. ඔබ ව්‍යතිරේකයක් විසි කරන සෑම අවස්ථාවකම යෙදුමේ සම්පූර්ණ තත්වය අනුක්‍රමික නොකළ යුතුය.
ඔඩල්රික්

@Odalrick පාරිභෝගික සඳහා එය කිසිදු අර්ථයක් නොමැති විය හැකි නමුත් සංවර්ධක ලෙස මම ;-) සමහරවිට පසුව තවත් උදාහරණයක් ලබා ගත හැක සෑම තොරතුරු අගය: ඉඩ ගේ SqlExeption සඳහන් වන අතර ඔබ දන්නා ගේ හැම දෙයක්ම ... එය වඩාත් පහසු බව කියන්න අලුත්වැඩියා එය කුමන සම්බන්ධතා නූලක් හෝ දත්ත සමුදායක් හෝ වගුවක් යනාදිය ක්‍රියා නොකළේ දැයි ඔබ දන්නේ නම් .... ඔබේ යෙදුම දත්ත සමුදායන් කිහිපයක් භාවිතා කරන්නේ නම් මෙය ඊටත් වඩා වැදගත් වේ. සවිස්තරාත්මක සිරස් හෝඩුවාවක් සඳහා pdb- ගොනු යෙදුම සමඟ නැව්ගත කිරීම අවශ්‍ය වේ ... එය සැමවිටම කළ නොහැකි ය. මතක ඩම්ප් ඉතා විශාල විය හැකි අතර සෑම විටම මාරු කළ නොහැක.
t3chb0t
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.