بازگشت به دوره

آموزش رایگان صفر تا صد جاوا (Java) به زبان ساده

0% تکمیل‌شده
0/0 مرحله
  1. معرفی جاوا
  2. ساخت اولین برنامه: Hello World
  3. چاپ متن در جاوا
  4. چاپ عدد در جاوا
  5. نظرات (Comments) در جاوا
  6. متغیرها جاوا
  7. نمایش متغیرها (Display Variables) در جاوا
  8. تعریف چند متغیر در جاوا (Java)
  9. شناسایی متغیرها (Identifiers)
  10. معرفی متغیرها با مثال‌های واقعی
  11. آشنایی با انواع داده‌ها (Data Types) در جاوا
  12. آشنایی با اعداد (Numbers) در جاوا
  13. آشنایی با نوع داده بولین (Boolean)
  14. کار با کاراکترها و رشته‌ها در جاوا (Characters and Strings in Java)
  15. مثال واقعی برای استفاده از انواع داده در جاوا
  16. آشنایی با انواع داده‌های غیرابتدایی (Non-Primitive Data Types)
  17. آموزش مفهوم Type Casting در جاوا
  18. آموزش عملگرها (Operators) در جاوا
  19. آشنایی با رشته‌ها (Strings) در جاوا
  20. آشنایی با الحاق رشته‌ها (String Concatenation)
  21. اضافه کردن اعداد و رشته‌ها در جاوا
  22. رشته‌ها و کاراکترهای خاص در جاوا
  23. آشنایی با کلاس Math در جاوا
  24. آشنایی با Boolean در جاوا
  25. آشنایی با شرط‌ها (Conditions) و دستورات شرطی (If Statements) در جاوا
  26. آشنایی با دستور else در برنامه‌نویسی
  27. آموزش عبارت else if در برنامه‌نویسی
  28. آشنایی با عملگر شرطی کوتاه در جاوا (Ternary Operator)
  29. آموزش شرط‌ها (If..Else) در برنامه‌نویسی با مثال‌های واقعی
  30. آشنایی با Switch Statement در جاوا
  31. آشنایی با حلقه While در جاوا
  32. حلقه Do/While در جاوا
  33. آشنایی با حلقه For در جاوا
  34. حلقه‌های تودرتو (Nested Loops) در جاوا
  35. حلقه For-Each در جاوا
  36. آموزش دستورات Break و Continue در جاوا
  37. آشنایی با آرایه‌ها در جاوا (Java Arrays)
  38. آموزش ساده استفاده از حلقه‌ها برای پیمایش آرایه‌ها در جاوا (Java Arrays Loop)
  39. آرایه‌های چندبعدی در جاوا (Java Multi-Dimensional Arrays)
  40. معرفی متدها در جاوا (Java Methods)
  41. آموزش ساده: پارامترها و آرگومان‌ها در متدهای جاوا (Java Method Parameters)
  42. مفهوم بازگشت مقدار در جاوا (Java Return)
  43. روش بارگذاری مجدد متدها در جاوا (Java Method Overloading)
  44. آشنایی با محدوده متغیرها در جاوا (Java Scope)
  45. بازگشت در جاوا (Java Recursion)
  46. آشنایی با برنامه‌نویسی شیء‌گرا (Object-Oriented Programming یا OOP)
  47. برنامه‌نویسی شی‌ءگرا در جاوا (Java Classes/Objects)
  48. آشنایی با ویژگی‌های کلاس در جاوا (Java Class Attributes)
  49. متدها در جاوا (Java Methods)
  50. Constructor در جاوا
  51. آشنایی با Modifiers در جاوا (Java Modifiers)
  52. مفهوم کپسوله‌سازی (Encapsulation) در جاوا
  53. راهنمای جامع پکیج‌ها (Packages) و API در جاوا
  54. وراثت (Inheritance) در جاوا – ساده و قابل فهم
  55. پلی‌مورفیسم (Polymorphism) در جاوا به زبان ساده
  56. کلاس‌های داخلی (Inner Classes) در جاوا
  57. کلاس‌ها و متدهای انتزاعی (Abstract Classes and Methods) در جاوا
  58. رابط‌ها (Interfaces) در جاوا
  59. آشنایی با Enum در جاوا
  60. دریافت ورودی از کاربر در جاوا (Scanner)
  61. تاریخ و زمان در جاوا (Java Date and Time)
  62. آشنایی با ArrayList در جاوا
  63. آشنایی با LinkedList در جاوا
  64. مرتب‌سازی لیست در جاوا (Java List Sorting)
  65. آشنایی با HashMap در جاوا
  66. آشنایی با HashSet در جاوا
  67. آشنایی با Iterator در جاوا
  68. کلاس‌های بسته‌بندی (Wrapper Classes) در جاوا
  69. استفاده از try...catch برای مدیریت خطاها
  70. آشنایی با عبارات منظم (Regular Expressions) در جاوا
  71. آشنایی با Threads در جاوا 🚀
  72. آشنایی با Lambda Expressions در جاوا
  73. مرتب‌سازی پیشرفته در جاوا
  74. آشنایی با کلمه کلیدی assert در جاوا
  75. آشنایی با کلمه کلیدی abstract در جاوا
  76. آشنایی با کلمه کلیدی boolean در جاوا
  77. آشنایی با کلمه کلیدی break در جاوا
  78. آشنایی با کلمه کلیدی byte در جاوا
  79. آشنایی با کلمه کلیدی case در جاوا
  80. آشنایی با کلمه کلیدی catch در جاوا
  81. آشنایی با کلمه کلیدی char در جاوا
  82. آشنایی با کلمه کلیدی class در جاوا
  83. آشنایی با کلمه کلیدی continue در جاوا
  84. آشنایی با کلمه کلیدی default در جاوا
  85. آشنایی با کلمه کلیدی do در جاوا
  86. آشنایی با کلمه کلیدی double در جاوا
  87. آشنایی با کلمه کلیدی else در جاوا
  88. آشنایی با کلمه کلیدی enum در جاوا
  89. آشنایی با کلمه کلیدی exports در جاوا
  90. آشنایی با کلمه کلیدی Inheritance در جاوا
  91. آشنایی با کلمه کلیدی final در جاوا
  92. آشنایی با کلمه کلیدی finally در جاوا
  93. آشنایی با کلمه کلیدی float در جاوا
  94. آشنایی با کلمه کلیدی for در جاوا
  95. آشنایی با کلمه کلیدی if در جاوا
  96. آشنایی با کلمه کلیدی implements در جاوا
  97. آشنایی با کلمه کلیدی import در جاوا
  98. آشنایی با کلمه کلیدی instanceof در جاوا
  99. آشنایی با کلمه کلیدی int در جاوا
  100. آشنایی با کلمه کلیدی Interface در جاوا
  101. آشنایی با کلمه کلیدی long در جاوا
  102. آشنایی با کلمه کلیدی module در جاوا
  103. آشنایی با کلمه کلیدی native در جاوا
  104. آشنایی با کلمه کلیدی new در جاوا
  105. آشنایی با کلمه کلیدی package در جاوا
  106. آشنایی با کلمه کلیدی private در جاوا
  107. آشنایی با کلمه کلیدی protected در جاوا
  108. آشنایی با کلمه کلیدی public در جاوا
  109. آشنایی با کلمه کلیدی return در جاوا
  110. آشنایی با کلمه کلیدی requires در جاوا
  111. آشنایی با کلمه کلیدی short در جاوا
  112. آشنایی با کلمه کلیدی static در جاوا
  113. آشنایی با کلمه کلیدی super در جاوا
  114. آشنایی با کلمه کلیدی switch در جاوا
  115. آشنایی با کلمه کلیدی synchronized در جاوا
  116. آشنایی با کلمه کلیدی this در جاوا
  117. آشنایی با کلمه کلیدی throw در جاوا
  118. آشنایی با کلمه کلیدی throws در جاوا
  119. آشنایی با کلمه کلیدی transient در جاوا
  120. آشنایی با کلمه کلیدی try...catch در جاوا
  121. آشنایی با کلمه کلیدی var در جاوا
  122. آشنایی با کلمه کلیدی void در جاوا
  123. آشنایی با کلمه کلیدی volatile در جاوا
  124. آشنایی با کلمه کلیدی while در جاوا
  125. متد charAt() در جاوا
  126. متد codePointAt() در جاوا
  127. متد codePointBefore() در جاوا
  128. متد codePointCount() در جاوا
  129. متد compareTo() در جاوا
  130. متد compareToIgnoreCase() در جاوا
  131. متد concat() در جاوا
  132. متد contains() در جاوا
  133. متد contentEquals() در جاوا
  134. متد copyValueOf() در جاوا
  135. متد endsWith() در جاوا
  136. متد equals() در جاوا
  137. متد equalsIgnoreCase() در جاوا
  138. متد format() در جاوا
  139. متد getBytes() در جاوا
  140. متد getChars() در جاوا
  141. متد hashCode() در جاوا
  142. متد indexOf() در جاوا
  143. متد isEmpty() در جاوا
  144. متد join() در جاوا
  145. متد lastIndexOf() در جاوا
  146. متد length() در جاوا
  147. متد matches() در جاوا
  148. متد offsetByCodePoints() در جاوا
  149. متد regionMatches() در جاوا
  150. متد replace() در جاوا
  151. متد replaceAll() در جاوا
  152. متد replaceFirst() در جاوا
  153. متد split() در جاوا
  154. متد startsWith() در جاوا
  155. متد subSequence() در جاوا
  156. متد substring() در جاوا
  157. متد toCharArray() در جاوا
  158. متد toLowerCase() در جاوا
  159. متد toString() در جاوا
  160. متد toUpperCase() در جاوا
  161. متد trim() در جاوا
  162. متد valueOf() در جاوا
  163. متد abs() در جاوا
  164. متد acos() در جاوا
درس 120 از 164
در حال پیشرفت

آشنایی با کلمه کلیدی try…catch در جاوا

در برنامه‌نویسی، ممکن است خطاهایی (Errors) هنگام اجرای کد رخ دهند. جاوا برای مدیریت این خطاها یک مکانیسم خاص به نام try...catch دارد. بیایید این مفهوم را ساده و شفاف بررسی کنیم. 👇


🔹 چرا try...catch مهم است؟

وقتی یک برنامه اجرا می‌شود، ممکن است به دلیل مشکلات مختلفی مثل تقسیم عدد بر صفر، دسترسی به خانه‌ای خارج از محدوده آرایه یا اتصال ناموفق به پایگاه داده دچار خطا شود. اگر این خطاها مدیریت نشوند، ممکن است برنامه متوقف شود و تجربه کاربری بدی ایجاد کند. 😕

try به ما امکان می‌دهد یک بخش از کد را مشخص کنیم که ممکن است باعث خطا شود.
catch این خطا را گرفته (Catch) و یک راه‌حل جایگزین ارائه می‌دهد تا برنامه همچنان به کار خود ادامه دهد.


🎯 نحوه استفاده از try...catch در جاوا

✅ مثال ساده:

فرض کنید می‌خواهیم به یک آرایه عددی دسترسی پیدا کنیم، اما به اشتباه سعی می‌کنیم مقدار خانه‌ای که وجود ندارد را چاپ کنیم. این باعث خطا می‌شود، اما ما می‌توانیم این خطا را با try...catch کنترل کنیم.

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]); // این خطا ایجاد می‌کند
    } catch (Exception e) {
      System.out.println("خطایی رخ داد! لطفاً بررسی کنید. ");
    }
  }
}

🔍 خروجی:

خطایی رخ داد! لطفاً بررسی کنید.

در اینجا خطای دسترسی به ایندکس نادرست آرایه اتفاق افتاد، اما برنامه متوقف نشد و به جای آن پیام مناسبی نمایش داده شد. 🎉


🔹 توضیح مراحل کد بالا:

  1. داخل try یک بلوک کد نوشته‌ایم که ممکن است باعث خطا شود.
  2. اگر خطایی رخ دهد، catch آن را گرفته و پیام مناسبی نمایش می‌دهد.
  3. برنامه متوقف نمی‌شود و اجرای کد ادامه پیدا می‌کند.

🎯 مثال پیشرفته‌تر: جلوگیری از تقسیم بر صفر

فرض کنید برنامه‌ای می‌نویسیم که عددی را بر عدد دیگر تقسیم می‌کند. اما اگر کاربر عدد صفر وارد کند، برنامه دچار خطای ریاضی (ArithmeticException) می‌شود. با try...catch می‌توانیم این مشکل را کنترل کنیم.

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    try {
      System.out.print("عدد اول را وارد کنید: ");
      int num1 = scanner.nextInt();

      System.out.print("عدد دوم را وارد کنید: ");
      int num2 = scanner.nextInt();

      int result = num1 / num2; // اگر num2 صفر باشد، خطا ایجاد می‌شود
      System.out.println("نتیجه: " + result);

    } catch (ArithmeticException e) {
      System.out.println(" خطا! تقسیم بر صفر امکان‌پذیر نیست.");
    }
  }
}

🔍 خروجی در دو حالت:

ورودی‌های صحیح:

عدد اول را وارد کنید: 10
عدد دوم را وارد کنید: 2
نتیجه: 5

✅ نتیجه درست محاسبه شد.

ورودی اشتباه (تقسیم بر صفر):

عدد اول را وارد کنید: 10
عدد دوم را وارد کنید: 0
 خطا! تقسیم بر صفر امکان‌پذیر نیست.

✅ برنامه دچار کرش نشد و به جای آن پیام هشدار داد.


📌 چند نکته مهم درباره try...catch

🔹 فقط یک خطا مدیریت نکنید! می‌توان چندین catch برای انواع مختلف خطاها داشت.
🔹 از finally برای کدهای ضروری استفاده کنید. اگر بخواهید یک کد حتماً اجرا شود (مثل بستن فایل‌ها یا ارتباطات)، می‌توانید از finally استفاده کنید.
🔹 خطاها را شفاف نمایش دهید. می‌توانید از e.getMessage() برای نمایش اطلاعات بیشتر درباره خطا استفاده کنید.

🎯 مثال: چندین catch برای مدیریت انواع خطاها

public class Main {
  public static void main(String[] args) {
    try {
      int[] numbers = {1, 2, 3};
      System.out.println(numbers[10]); // خطای آرایه
      int x = 10 / 0; // خطای تقسیم بر صفر
    } catch (ArrayIndexOutOfBoundsException e) {
      System.out.println(" خطای دسترسی به آرایه! ایندکس نامعتبر است.");
    } catch (ArithmeticException e) {
      System.out.println(" خطای ریاضی! تقسیم بر صفر مجاز نیست.");
    }
  }
}

🔹 در این مثال:

  • اگر خطای آرایه رخ دهد، پیام مناسب نمایش داده می‌شود.
  • اگر خطای تقسیم بر صفر رخ دهد، پیام دیگری نمایش داده می‌شود.
  • این باعث مدیریت بهتر خطاها می‌شود. 🎯

✅ نتیجه‌گیری

  1. try...catch برای مدیریت خطاها در جاوا استفاده می‌شود تا برنامه متوقف نشود.
  2. try یک کد مشکوک به خطا را بررسی می‌کند.
  3. catch خطا را می‌گیرد و پاسخ مناسبی می‌دهد.
  4. می‌توان چندین catch برای خطاهای مختلف داشت.
  5. استفاده از finally باعث می‌شود برخی دستورات همیشه اجرا شوند.