0Pricing
C# Academy · บทเรียน

การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข

ใช้การตรวจสอบเงื่อนไขกับอินพุตที่ไม่ถูกต้องซึ่งคาดหมายได้ โยนข้อยกเว้นสำหรับสถานะผิดปกติ และใช้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. if/else, switch (แบบดั้งเดิม) และลูป: for, while, do, foreach
  2. break/continue, goto (ควรหลีกเลี่ยง), ขอบเขต และข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข
  3. การวินิจฉัยอย่างง่าย: ข้อยกเว้นเทียบกับการตรวจสอบเงื่อนไข
← กลับไปที่ C# Academy