การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข
ใช้การตรวจสอบเงื่อนไขกับอินพุตที่ไม่ถูกต้องซึ่งคาดหมายได้ โยนข้อยกเว้นสำหรับสถานะผิดปกติ และใช้ try/catch เพื่อจัดการข้อผิดพลาดอย่างเหมาะสม
การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
ภาพรวมการวินิจฉัย
เป้าหมาย: ใช้ การตรวจสอบป้องกัน สำหรับปัญหาที่คาดไว้ และใช้ ข้อยกเว้น สำหรับปัญหาที่พบไม่บ่อยและร้ายแรง
ตัวอย่างการตรวจสอบป้องกัน
การตรวจสอบป้องกันจะส่งคืนสถานะแทนการโยนข้อยกเว้นสำหรับอินพุตที่ไม่ถูกต้องซึ่งพบได้บ่อย
using System;
public class Program
{
public static bool TryDivide(int a, int b, out int result)
{
if (b == 0)
{
result = 0;
return false; // guard check fails
}
result = a / b;
return true;
}
public static void Main(string[] args)
{
int r;
bool ok = TryDivide(10, 0, out r);
Console.WriteLine("ok=" + ok + " result=" + r);
}
}
ตัวอย่างข้อยกเว้น
ข้อยกเว้นจะหยุดการทำงานเว้นแต่จะมีการจัดการ ใช้ข้อยกเว้นสำหรับเงื่อนไขที่ไม่คาดคิดหรือร้ายแรง
using System;
public class Program
{
public static int PriceWithTax(int price, int ratePercent)
{
if (price < 0)
{
throw new ArgumentOutOfRangeException("price");
}
if (ratePercent < 0 || ratePercent > 100)
{
throw new ArgumentOutOfRangeException("ratePercent");
}
return price + (price * ratePercent / 100);
}
public static void Main(string[] args)
{
try
{
int total = PriceWithTax(100, 20);
Console.WriteLine("Total=" + total);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
การผสมการตรวจสอบกับข้อยกเว้น
ผสมผสานแนวทางได้ดังนี้: ใช้ การตรวจสอบป้องกันสำหรับการตรวจสอบตามปกติ และใช้ ข้อยกเว้นสำหรับสถานะที่ไม่ถูกต้อง
using System;
public class Program
{
public static bool TryParsePrice(string text, out int value)
{
return int.TryParse(text, out value); // guard check
}
public static int GetDiscount(int code)
{
if (code < 0) throw new ArgumentException("Invalid code"); // exception
return 10;
}
public static void Main(string[] args)
{
int v;
if (TryParsePrice("123", out v))
{
Console.WriteLine("Parsed " + v);
}
try
{
int d = GetDiscount(-1);
Console.WriteLine("Discount=" + d);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
ตัวอย่าง try/catch
ใช้ try/catch เพื่อจัดการข้อยกเว้นและให้โปรแกรมทำงานต่อได้
using System;
public class Program
{
public static void Main(string[] args)
{
try
{
int x = 10;
int y = 0;
int z = x / y; // will throw DivideByZeroException
Console.WriteLine(z);
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Cannot divide by zero: " + ex.Message);
}
}
}
เคล็ดลับ
เคล็ดลับ:
- การตรวจสอบป้องกันจะส่งคืนค่าเริ่มต้นที่ปลอดภัยสำหรับกรณีทั่วไป
- ข้อยกเว้นควรเกิดขึ้นไม่บ่อยและมีความหมายชัดเจน
- ดักจับเฉพาะสิ่งที่คุณจัดการได้
การตรวจสอบป้องกันเทียบกับข้อยกเว้น
ทบทวน
ทบทวน: ใช้การตรวจสอบป้องกันสำหรับอินพุตที่ไม่ถูกต้องซึ่งพบได้บ่อย โยนข้อยกเว้นสำหรับสถานะผิดปกติ และจัดการด้วย try/catch เมื่อสามารถกู้คืนการทำงานได้
คำถามที่พบบ่อย
บทเรียน “การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข”
ใช้การตรวจสอบเงื่อนไขกับอินพุตที่ไม่ถูกต้องซึ่งคาดหมายได้ โยนข้อยกเว้นสำหรับสถานะผิดปกติ และใช้ try/catch เพื่อจัดการข้อผิดพลาดอย่างเหมาะสม คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- if/else, switch (แบบดั้งเดิม) และลูป: for, while, do, foreach
- break/continue, goto (ควรหลีกเลี่ยง), ขอบเขต และข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข
- การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข