Using finally
ธนกร ภควณิช 650710984
finally คืออะไร
ในการเขียนโปรแกรม ข้อยกเว้นอาจทำให้มีปัญหาหรือเกิดข้อผิดพลาดได้ ทำให้การทำงานหรือเมธอดอาจหยุดการทำงานลงได้ เพื่อแก้ปัญหาเหล่านี้จึงคีเวิร์ดตัวนึงที่มีชื่อว่า Finally Finally จะเริ่มการทำงานหลังจาก Try และ Catch จบการทำงานไม่ว่า Try จะถูกหยุดการทำงานด้วยข้อยกเว้น
C#
จุดสำคัญของ finally ใน C# คือ 1.บล็อคของ finally ไม่ควรมีหลายบล็อคในโปรแกรมเดียวกันได้ 2.finally ไม่มีควรใช้ return, break หรือ continue 3.finally สามารถใช้คู่กับ try โดยที่ไม่ต้องมี catch ก็ได้ยังไง finally ก็ยังคงทำงานต่อจาก try
C# Ex1
เคสที่ 1 โค๊ดจะรันตามปกติแต่จะไปเจอปัญหาตรงเอา 0 มาหารเลยทำให้บล็อคของ catch แสดงประโยคออกมาว่า Not possible to divide by zero!
Output
C# Ex2
เคสที่ 2 จะมีปัญหาหรือerror ตรงที่ 0 ไม่สามารถหารกับ 4 ได้ แต่ยังไงก็ตาม finally ก็ยังคงทำงานต่อ
Output
Java
Java Ex1
เคสที่ 1 โค๊ดจะรันอย่างปกติดีในส่วนของ catch หรือ (except) จะไม่ทำงานเพราะ 34/2 ได้โดยไม่มีปัญหาอะไร
Output
Java Ex2
เคสที่ 2 โค๊ดจะรันไปถึง 34/0 แต่ก็พบปัญหาเพราะ 0 ไม่สามารถหารได้ จึงทำให้ catch รันและแสดงข้อความว่า catch : exception handled.
Output
Python
จุดสำคัญของ finally ใน Python คือ 1.ใน Python หากเราจะใช้ catch เราจะต้องเปลี่ยนเป็น except แทน 2.ส่วนต่างๆก็จะคล้ายๆภาษาอื่นๆ
Python Ex1
เคสที่ 1 โค๊ดรันแต่เจอปัญหาคือ 0 ไม่สามารถหารได้จึงทำให้ except ทำงาน และแสดงข้อความว่า Can't divide by zero แล้วหลังจากนั้น finally ก็รันตามปกติ
Output
Python Ex2
เคสที่ 2 ในส่วนนี้จะรันได้ตามปกติและไม่พบปัญหา try จะแสดงค่า k ออกมา แล้วก็ข้ามไป finally ทำงานตามปกติ
Output
Python Ex3
เคสที่ 3 ในส่วนนี้ 0 ไม่สามารถหาร 5 ได้ และโค๊ดนี้ไม่มี except แต่ก็ไม่เป็นอะไร finally ก็ยังสามารถรันได้ต่อ
Output
สรุป
ทั้ง 3 ภาษา C# / Java / Python การใช้ finally มีจุดประสงค์เดียวกับหมดคือเพื่อให้แน่ใจว่าโค๊ดในบล็อคนี้รันเสมอ หลังจาก Try หรือ Catch จบการทำงาน แต่ใน Python จะต้องใช้ except แทน catch
Slide and Video presentation
Reference
Getting Started
Create your first site
Basics
Learn the basics of GitBook
Publish your docs
Share your docs online
Last updated