Package، Import، Exception و فایل؛ نظم پروژه واقعی
کد واقعی فقط چند خط فان نیست؛ باید پوشهبندی، خطا و فایل هم بلد باشی.
Package و Import
پکیجها برای مرتب کردن کدن. اگر همهچی رو بریزی تو یه فایل، پروژهات میشه انباری آخر سال؛ پیدا کردن یک چیز هم مصیبت.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
package ir.dicode.app
import kotlin.math.max
fun main() {
println(max(10, 20))
}
20
مدیریت خطا
با `try-catch` جلوی ترکیدن برنامه رو میگیری. خطا رو قایم نکن؛ هندل کن. برنامه حرفهای وقتی مشکل میبینه، با شخصیت برخورد میکنه.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
fun main() {
print("عدد بده: ")
val number = try {
readln().toInt()
} catch (e: NumberFormatException) {
0
}
println("عدد نهایی: $number")
}
عدد بده: abc عدد نهایی: 0
require و check
برای اعتبارسنجی ورودی از `require` و برای وضعیت داخلی از `check` استفاده کن. اینا مثل نگهبان در ورودیان؛ ورودی خراب رو نذار داخل مهمونی.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
fun setAge(age: Int) {
require(age >= 0) { "سن نمیتونه منفی باشه" }
println("سن ثبت شد: $age")
}
اگر setAge(20) اجرا شود: سن ثبت شد: 20 اگر عدد منفی بدهی، برنامه با پیام مشخص خطا میدهد.
فایلخوانی ساده
روی JVM میتونی با `java.io.File` فایل بخونی و بنویسی. برای پروژه جدیتر باید مسیر و خطاها رو درست مدیریت کنی.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
import java.io.File
fun main() {
val file = File("notes.txt")
file.writeText("سلام از کاتلین")
println(file.readText())
}
سلام از کاتلین
نتیجه این درس 🎯
پروژه واقعی بدون package، import، مدیریت خطا و فایل مثل مغازه بدون قفسه است. این درس نظم و امنیت اجرای برنامه را وارد بازی کرد.
تمرین! 🧠
تابعی بنویس که اگر سن منفی بود خطا بده وگرنه پیام تأیید چاپ کند.
fun validateAge(age: Int) {
require(age >= 0) { "سن منفی؟ داداش داریم انسان ثبت میکنیم نه عدد بدهی!" }
println("سن معتبره: $age")
}
fun main() {
validateAge(21)
}
سن معتبره: 21