ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-28, Tuesday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

⚠️ හිස් Error ඇලට්ට්‍රයක්: JSON.stringify වලින් සඟවන වැරදි

⚠️ හිස් Error ඇලට්ට්‍රයක්: JSON.stringify වලින් සඟවන වැරදි

ඇප් එකකින් "Integration failed Error: {}" කියලා ඇලට්ට්‍රයක් එනවා. එහි කුමක්ද කියලා බලන්න ගියොත්, කවුඩ් දෙකක් පමණක් – {} – පෙනෙනවා. එම තොරතුරක් නැතිව, පද්ධතියේ ගැටලුවක් ඇතිවුවත්, එය මොන තැනකද වැරදියි කියලා කිසිවක් නොකියයි.

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

ඇයි මේ වගේ පණිවුඩයක් පෙන්වන්නේ? JavaScript හි JSON.stringify ක්‍රියාවලිය වස්තුවේ enumerable (පිරික්සුම් කළ හැකි) ගුණාංග පමණක් පරිවර්තනය කරයි. Error වස්තුවේ message සහ stack ගුණාංග non‑enumerable වන නිසා, Object.keys(err) හි හිස් ඇරේ එකක් ලැබේ. ඒත් Object.getOwnPropertyNames(err) භාවිතා කරද්දී ඒ ගුණාංග පෙන්වෙයි.

ඒ නිසා, බොහෝ ලොග් සමාගම් JSON.stringify(err) හරහා error වස්තුව සෘජුව ලොග් කරන්නේ නැත. ඒ වෙනුවට, { message: err.message, stack: err.stack } වගේ වස්තුවක් සකස් කරලා ලොග් කරයි. එහෙම නොකළහොත්, ඇලට්ට්‍රය පෙන්වන තොරතුරක් පූර්ණයෙන්ම සඟවා යයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ වැඩිදුරටත් වැඩි සංඛ්‍යාවේ ඩෙවලපර්ස්, ස්ට්‍රට්-අප්ස්, සහ IT ආයතන මේ වගේ ගැටළු වලට මුහුණ දෙනවා. නිවැරදි ලොග් කිරීමේ පද්ධතියක් නොමැතිව, වැරදි හඳුනා ගැනීම කාලය ගත කරයි, පාරිභෝගික සේවා අඩු වේ. මෙම ලිපියෙන් පෙන්වන සරල උදාහරණය, JavaScript හි ගුණාංග ගැණුම් පිළිබඳ අවබෝධය වැඩි කර ගත හැකි බව පෙන්වයි. එය නිවැරදි ලෙස ලොග් කිරීම, API හෝ cloud සේවාවන් සමඟ සම්බන්ධතා ගැටළු හඳුනා ගැනීම, හා පද්ධති විශ්වාසනීයතාවය වැඩි කිරීම සඳහා වැදගත් වේ. ශ්‍රී ලංකාවේ තාක්ෂණික කර්මාන්තයට මේ වගේ දැනුම බෙදාගැනීම, දේවල් වඩා වේගවත්, ආරක්ෂිත, හා පාරිභෝගික‑මිතුරක් බවට පත් කරයි.

ඉතින්, ඔබේ යෙදුම් වල error වස්තු සෘජුව JSON.stringify නොකර, අවශ්‍ය තොරතුරු (message, stack) අලූතින් සකස් කර ලොග් කිරීම අත්‍යවශ්‍යයි. එවිට ඇලට්ට්‍රයක් පෙනෙන විට, ඒකේ ඇතුළත් කරුණු පැහැදිලිව පෙනෙයි, ගැටළුව ඉක්මනින් විසඳීමට හැකියාව ලැබේ.

අවසානයට, ලොග් කිරීමේ නීතික පරීක්ෂාවක් නැතිව, “{}” වැනි හිස් පණිවුඩයක් පමණක් පෙන්වීම, පද්ධතියේ වැරදි සඟවීමේ හොඳම උදාහරණයක්. මේ වගේ සිදුවීම් වලින් ඉදිරියට ඉවත් වීමට, ඔබේ කේතයේ error handling සහ logging strategy එක නැවත පරීක්ෂා කරමු.

💡 වැරදි ඇලට්ට්‍රවලින් ඔබේ සෙවීම දැන්ම පරීක්ෂා කරන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Error #JSON #JavaScript #Bug #Logging