การใช้งาน Try-Catch จัดการกับ error
วิธีการจัดการกับ Error ง่ายๆ อีกวิธีก็คือการใช้ Try-Catch นั่นเองครับ
คำสั่ง try-catch ทำหน้าที่ "ละเลย errror" ครับ ผมให้นิยามแบบนี้ละกัน 5555+
คือหากเป็นโค้ดโปรแกรมปกติ เมื่อเกิด error ขึ้น โปรแกรมจะหยุดทำงานทันที แต่หากเราใช้ try-catch โปรแกรมก็จะ "ละเลย" หรือ "ไม่สนใจ" error นั้น แล้วทำงานต่อไป เหมือนไม่มีอะไรเกิดขึ้น
มาดูตัวอย่างกันดีกว่าครับ
ในโปรแกรมนี้นะครับ ถ้าคำสั่ง load สามารถอ่านข้อมูลในไฟล์ test01.txt โปรแกรมก็จะแสดงข้อมูลในไฟล์นั้นออกมา และจบโปรแกรมด้วยคำว่า "Program finish"
แต่ถ้าคำสั่ง load อ่านข้อมูลไม่ได้ อาจจะเนื่องมาจาก ประเภทข้อมูลในไฟล์ไม่ถูกต้อง หรือไม่มีไฟล์นั้นอยู่ โปรแกรมก็จะบอกว่าทำไมอ่านไฟล์ไม่ได้ (แต่ไม่ได้ error) หลังจากนั้นก็จะแสดงคำว่า "Program finish"
แต่ถ้าไม่มีคำสั่ง try-catch แล้วคำสั่ง load อ่านไฟล์ไม่ได้ โปรแกรมจะแสดงข้อความ error บนหน้าจอ command window และหยุดทำงาน โดยสังเกตุได้ว่าจะไม่มีคำว่า "Program finish" แสดงบนหน้า command ซึ่งเป็น process สุดท้ายของโปรแกรม ดังนั้นจึงหมายความว่าโปรแกรมหยุดทำงานไปก่อนที่จะได้ทำงานคำสั่งนี้ คำสั่งนี้ก็เลยไม่แสดงผลออกมา
ลองมาดูตัวอย่างการรันจากวีดีโอกันเลยครับ
คำสั่ง try-catch ทำหน้าที่ "ละเลย errror" ครับ ผมให้นิยามแบบนี้ละกัน 5555+
คือหากเป็นโค้ดโปรแกรมปกติ เมื่อเกิด error ขึ้น โปรแกรมจะหยุดทำงานทันที แต่หากเราใช้ try-catch โปรแกรมก็จะ "ละเลย" หรือ "ไม่สนใจ" error นั้น แล้วทำงานต่อไป เหมือนไม่มีอะไรเกิดขึ้น
มาดูตัวอย่างกันดีกว่าครับ
% ------------------------ MATLAB Programing -------------------------% % Example: How to use try-catch % % Create by: Kritthanit % % Create date: 20-12-2018 % % Blog: https://loglike.blogspot.com % % Fanpage: https://www.facebook.com/Matlab-Programing-194695677296190 % % --------------------------------------------------------------------% clc;clear;close all; try % normal process S = load('test01.txt'); disp('Data in text file') disp(S) disp('----------------------') catch err % do if try error disp(err.message); end disp('Program finish');
ในโปรแกรมนี้นะครับ ถ้าคำสั่ง load สามารถอ่านข้อมูลในไฟล์ test01.txt โปรแกรมก็จะแสดงข้อมูลในไฟล์นั้นออกมา และจบโปรแกรมด้วยคำว่า "Program finish"
แต่ถ้าคำสั่ง load อ่านข้อมูลไม่ได้ อาจจะเนื่องมาจาก ประเภทข้อมูลในไฟล์ไม่ถูกต้อง หรือไม่มีไฟล์นั้นอยู่ โปรแกรมก็จะบอกว่าทำไมอ่านไฟล์ไม่ได้ (แต่ไม่ได้ error) หลังจากนั้นก็จะแสดงคำว่า "Program finish"
แต่ถ้าไม่มีคำสั่ง try-catch แล้วคำสั่ง load อ่านไฟล์ไม่ได้ โปรแกรมจะแสดงข้อความ error บนหน้าจอ command window และหยุดทำงาน โดยสังเกตุได้ว่าจะไม่มีคำว่า "Program finish" แสดงบนหน้า command ซึ่งเป็น process สุดท้ายของโปรแกรม ดังนั้นจึงหมายความว่าโปรแกรมหยุดทำงานไปก่อนที่จะได้ทำงานคำสั่งนี้ คำสั่งนี้ก็เลยไม่แสดงผลออกมา
ลองมาดูตัวอย่างการรันจากวีดีโอกันเลยครับ