نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

الاستثناءات (Exceptions) في لغة Kotlin

أصناف الاستثناءات (Exception Classes) تنحدر كلّ أصناف الاستثناءات في لغة Kotlin من الصنف Throwable حيث يوجد لكلِّ استثناءٍ رسالةٌ للإعلام به وتتبُّع تكديسي (stack trace) وسببٌ اختياريّ. ويُستخدَم التعبير throw لرمي كائن استثناءٍ بالشكل: throw MyException("Hi There!") أمّا تعبير try فهو مُستخدَمٌ لكشف الاستثناء كما في الشيفرة: try { // شيفرة } catch (e: SomeException) { // معالجات الاستثناء } finally { // قسم اختياريّ } ومن الممكن أن يحتوي الاستثناء أكثر من قسمٍ واحدٍ من catch أو ...

الصنف Exception في روبي

تُستخدَم الكائنات السليلة من الصنف Exception للتواصل بين التّابع Kernel.raise وتصريحات rescue في الكتل (blocks) من الشكل begin...end. تَحمل كائنات الصنف Exception معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية. قد تضيف الأصناف الفرعية من الصنف Exception معلوماتٍ إضافيّةٍ مثل NameError.name. قد تُنشِئ البرامج أصنافًا فرعيّةً (subclasses) من الصنف Exception، تكون عادةً StandardError أو RuntimeError، لتوفير أصنافٍ مخصصّةٍ وإضافة معلوماتٍ إضافية. ألقِ نظرةً على قائمة الأصناف الفرعية في الأسفل من أجل قيم ...

المعامل == في الصنف Exception في روبي

يتحقق المعامل == من تساوي كائني استثناء مع بعضهما بعضًا. البنية العامة exc == obj → true or false المعاملات exc كائن من النوع Exception يراد التحقق من تساويه مع الكائن obj. obj الكائن الآخر الذي سيُتحقَق من تساويه مع الكائن exc. القيم المعادة تُعاد القيمة false إذا كان الكائن obj ليس كائنًا من النوع Exception. عدا ذلك، تُعاد القيمة true إذا كان الكائنين exc و obj يتشاركان نفس الصّنف، والرسائل، والتَتبُّع العكسي (backtrace). انظر أيضًا التابع new: يُنشئ كائنًا ...

المقارنة بين لغتيّ البرمجة Java و Kotlin

بعض المواضيع في Java ومعالجتها في Kotlin عالجت لغة Kotlin العديد من المشاكل الموجودة في Java وهي: التحكُّم بالمرجعيّات الفارغة (null references) عبر نظام الأنواع لا وجود للأنواع الخامّ (raw types) تُعدُّ المصفوفات في Kotlin ثابتة (invariant) للدوال (functions) في Kotlin أنواع مناسبة وهذا ما يتعارض مع التحويلات SAM في Java التنوّع في موقع الاستخدام (use-site variance) دون الحاجة إلى المحارف البديلة (wildcards) لا وجود للاستثناءات المُتحقَّق منها (checked exceptions) في Kotlin ما تمتاز به Java ولا تدعمه Kotlin الاستثناءات ...

استبدال الاستثناءات بالاختبارات (Replace Exception with Test)

المشكلة إطلاق استثناء يمكن لاختبار بسيط أن يحل محله. الحل يستعاض عن الاستثناء باختبار الحالة. مثال قبل إعادة التصميم معالجة الاستثناء الحاصل عند وقوع الفهرس periodNumber خارج حدود مصفوفة القيم values وإعادة القيمة 0 آنذاك: في لغة Java: double getValueForPeriod(int periodNumber) { try { return values[periodNumber]; } catch (ArrayIndexOutOfBoundsException e) { return 0; } } في لغة C#‎: double GetValueForPeriod(int periodNumber) { try { return values[periodNumber]; ...

الصنف ‎‎CharCategory‎ في Kotlin

 الدوال الموروثة clone يطلق التابع clone()‎ استثناءً (exception) لأنّ ثوابت enum  لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنفCloneable. compareTo تقارن الدالةcompareTo()‎ بين قيمة العنصر الذي استُدعيت عبره والقيمة المُمرّرة، إذ تعيد القيمة 0 إن كانا متساويين، أو تعيد قيمة سلبية إن كانت قيمة العنصر الذي استُدعيت عبره أصغر من القيمة المُمرّرة، أو تعيد قيمة موجبة إن كانت قيمة العنصر الذي استُدعيت عبره أكبر من القيمة المُمرّرة . equals تبين الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي ...

الصنف ‎‎CharCategory‎ في Kotlin

 الدوال الموروثة clone يطلق التابع clone()‎ استثناءً (exception) لأنّ ثوابت enum  لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنفCloneable. compareTo تقارن الدالةcompareTo()‎ بين قيمة العنصر الذي استُدعيت عبره والقيمة المُمرّرة، إذ تعيد القيمة 0 إن كانا متساويين، أو تعيد قيمة سلبية إن كانت قيمة العنصر الذي استُدعيت عبره أصغر من القيمة المُمرّرة، أو تعيد قيمة موجبة إن كانت قيمة العنصر الذي استُدعيت عبره أكبر من القيمة المُمرّرة . equals تبين الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي ...

الصنف ‎‎CharDirectionality‎ في Kotlin

الخاصيات الموروثة (Inherited Properties) name تعيد الخاصية name اسم الثابت من الكائن enum الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن. ordinal تعيد الخاصية ordinal ترتيب الثابت من الكائن enum الذي استُدعيت عبره  enumeration constant‎)‎‎)، أي ترتيبها في تصريح الكائن enum،بحيث تأخذ المُركّبة الأولى العدد 0. الدوال الموروثة clone يطلق التابع clone()‎ استثناءً (exception) لأنّ ثوابت enum  لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنفCloneable. compareTo تقارن الدالةcompareTo()‎ بين قيمة العنصر الذي استُدعيت عبره والقيمة المُمرّرة، إذ تعيد القيمة 0 إن كانا متساويين، أو تعيد قيمة سلبية ...

الصنف ‎‎CharDirectionality‎ في Kotlin

الخاصيات الموروثة (Inherited Properties) name تعيد الخاصية name اسم الثابت من الكائن enum الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن. ordinal تعيد الخاصية ordinal ترتيب الثابت من الكائن enum الذي استُدعيت عبره  enumeration constant‎)‎‎)، أي ترتيبها في تصريح الكائن enum،بحيث تأخذ المُركّبة الأولى العدد 0. الدوال الموروثة clone يطلق التابع clone()‎ استثناءً (exception) لأنّ ثوابت enum  لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنفCloneable. compareTo تقارن الدالةcompareTo()‎ بين قيمة العنصر الذي استُدعيت عبره والقيمة المُمرّرة، إذ تعيد القيمة 0 إن كانا متساويين، أو تعيد قيمة سلبية ...

الصنف ‎‎RegexOption‎ في Kotlin

يوفّر قيما مُرقّمة (enumeration values) لاستخدامها في تعيين خيارات التعابير النمطية. الخاصيات الموروثة (Inherited Properties) name تعيد الخاصية name اسم الثابت من الكائن enum الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن. ordinal تعيد الخاصية ordinal ترتيب الثابت من الكائن enum الذي استُدعيت عبره  enumeration constant‎)‎‎)، أي ترتيبها في تصريح الكائن enum،بحيث تأخذ المُركّبة الأولى العدد 0. الدوال الموروثة clone يطلق التابع clone()‎ استثناءً (exception) لأنّ ثوابت enum  لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنفCloneable. compareTo تقارن الدالةcompareTo()‎ بين قيمة العنصر الذي استُدعيت عبره ...

الدالة String.offsetByCodePoints()‎ في Kotlin

تعيد الدالة offsetByCodePoints()‎ فهرس المحرف الموجود في السلسلة النصية التي استٌدعيت معها والذي ينزاح بمقدار محدد بدءًا من عنصر ذي فهرس محدد. البنية العامة inline fun String.offsetByCodePoints( index: Int, codePointOffset: Int ): Int منصة التشغيل المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات index عدد صحيح يمثل فهرس العنصر الذي ستبدأ عنده عملية الإزاحة. codePointOffset عدد صحيح يمثل مقدار الإزاحة. القيم المعادة عدد من ...

الدالة CharSequence.repeat()‎ في Kotlin

تكرِّر الدالة repeat()‎ سلسلة المحارف التي استٌدعيت معها عددًا محددًا من المرات. البنية العامة actual fun CharSequence.repeat(n: Int): String المعاملات n عدد صحيح يمثل عدد مرات تكرار سلسلة المحارف المعطاة. إن أعطيت قيمة سالبة لهذا المعامل، فسيُطلَق الاستثناء IllegalArgumentException. القيم المعادة تعاد سلسلة من المحارف تحوي جميع محارف السلسلة المعطاة بعد تكرارها n مرة. أمثلة مثالٌ على استعمال الدالة ()repeat: fun main(args: Array<String>) { println("Word".repeat(4)) // WordWordWordWord println("Word".repeat(0)) // } مثالٌ آخر على استعمال الدالة ()repeat ...

الدالة requireNoNulls()‎ في Kotlin

تعيد الدالة requireNoNulls()‎ العناصر غير المعدومة (non-null) من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها أو ترمي استثناءً إن وجد عنصر معدوم (null). البنية العامة fun <T : Any> Array<T?>.requireNoNulls(): Array<T> fun <T : Any> Iterable<T?>.requireNoNulls(): Iterable<T> fun <T : Any> List<T?>.requireNoNulls(): List<T> القيم المعادة تعاد المصفوفة أو المجموعة أو القائمة المعطاة نفسها إن لم يكن فيها أي عنصر معدوم أو يرمى الاستثناء IllegalArgumentException إن وجد أي عنصر معدوم. أمثلة استعمال الدالة ()requireNoNulls مع قائمة لا تحتوي على أي عنصر معدوم: fun ...

الدالة CharSequence.single()‎ في Kotlin

تتحقَّق الدالة single()‎ من حواية سلسلة المحارف التي استُدعيت معها محرفًا واحدًا فقط أو محرفًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده أو تطلق استثناءً خلاف ذلك. البنية العامة fun CharSequence.single(): Char  inline fun CharSequence.single(     predicate: (Char) -> Boolean ): Char وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات predicate دالة تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها محرفٌ وتعيد قيمة منطقية مقابله له. القيم المعادة يعاد المحرف ...

الدالة toDouble()‎ في Kotlin

تحلّل الدالة toDouble()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد عشري مضاعف. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. البنية العامة inline actual fun String.toDouble(): Double يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). القيم المعادة يعاد عدد من النوع Double يحوي ناتج تحويل السلسلة النصية المعطاة. أمثلة مثالٌ على استعمال الدالة toDouble()‎: fun main(args: Array<String>) { println("43.1".toDouble()) // 43.1 println("32.87".toDouble()) ...

الدالة toFloat()‎ في Kotlin

تحلّل الدالة toFloat()‎ السلسلة النصية التي استٌدعيت عبرها وتحوّلها إلى عدد عشري. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. البنية العامة inline actual fun String.toFloat(): Float يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). القيم المعادة عدد من النوع Float يحوي ناتج تحويل السلسلة النصية المعطاة. أمثلة مثالٌ على استعمال الدالة toFloat()‎: fun main(args: Array<String>) { println("43.1f".toFloat()) // 43.1 ...

استبدال شيفرات الأخطاء باستثناءات (Replace Error Code with Exception)

المشكلة يعيد التابع قيمة خاصة تشير إلى خطأ. الحل إطلاق استثناء بدلًا من ذلك. مثال قبل إعادة التصميم يعيد التابع ()withdraw القيمة 1- التي تمثِّل خطأً إن تحقق شرط محدَّد: في لغة Java: int withdraw(int amount) { if (amount > _balance) { return -1; } else { balance -= amount; return 0; } } في لغة C#‎: int Withdraw(int amount) { if (amount > _balance) { ...

الدالة toLong()‎ في Kotlin

تحلّل الدالة toLong()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد طويل. البنية العامة inline actual fun String.toLong(): Long تحلّل الدالة toLong()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد طويل. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. inline actual fun String.toLong(radix: Int): Long الإصدار المطلوب: Kotlin 1.1. تحلّل الدالة toLong()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد طويل. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. أما في حال كان المعامل radix المعطى أساسًا غير صالح ...

الدالة elementAt()‎ في Kotlin

تجلب الدالة elementAt()‎ عنصرًا ذي فهرس معيَّن من المصفوفة أو المجموعة التي استُدعيت معها. إن كان فهرس العنصر المعطى خارج حدود المصفوفة أو المجموعة، فستُطلق الدالة الاستثناء IndexOutOfBoundsException. البنية العامة يمكن استدعاء الدالة elementAt()‎ مع المصفوفات: inline fun <T> Array<out T>.elementAt(index: Int): T inline fun ByteArray.elementAt(index: Int): Byte inline fun ShortArray.elementAt(index: Int): Short inline fun IntArray.elementAt(index: Int): Int inline fun LongArray.elementAt(index: Int): Long inline fun FloatArray.elementAt(index: Int): Float inline fun DoubleArray.elementAt(index: Int): Double inline fun BooleanArray.elementAt(index: Int): Boolean inline fun ...

الدالة toBigDecimal()‎ في Kotlin

تحلّل الدالة toBigDecimal()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع BigDecimal. البنية العامة inline fun String.toBigDecimal(): BigDecimal منصة التشغيل والإصدار المطلوبان: Kotlin 1.2 ، JVM. تحلّل الدالة toBigDecimal()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع java.math.BigDecimal ثم تعيد الناتج. إن لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. inline fun String.toBigDecimal( mathContext: MathContext ): BigDecimal منصة التشغيل والإصدار المطلوبان: Kotlin 1.2 ، JVM. تحلّل الدالة toBigDecimal()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى ...

Kotlin/Topics

بُنية لغة Kotlin مشابهةٌ لبنية لغة البرمجة Java بوصفها كائنيّة التوجه (OOP)، وبالتالي فهي تعتمد أساسًا على وجود الأصناف (classes) التي تحتوي بدورها على الخاصّيّات (properties) والدوال (functions)، كما وتدعم Kotlin العلاقات فيما بينها مثل الوراثة (inheritance) من صنفٍ أعلى (superclass) أو التداخل فيما بينها (nesting classes)، وتمتاز بوجود مُحدِّدات الوصول (visibility modifiers) للتحكم بعمليات الوصول للبيانات المُخزَّنة، وكذلك فهي تعتمد في بُنيتها على الحزم (packages) والمكتبات (libraries) التي تحتوي على الدوال المساعدة عند الحاجة إليها، أمّا عن بُنية التعليمات ...

الدالة single()‎ في Kotlin

تتحقَّق الدالة single()‎ من حواية المصفوفة أو المجموعة أو القائمة التي استُدعيت معها عنصرًا واحدًا فقط أو عنصرًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده أو تطلق استثناءً خلاف ذلك. البنية العامة إن استدعيت الدالة single()‎ مع مصفوفة أو مجموعة أو قائمة دون تمرير أي معامل، فستتحقَّق من احتواء تلك المصفوفة أو المجموعة أو القائمة على عنصر واحد فقط ثمَّ تعيده. وفي حال كانت تلك المصفوفة أو المجموعة أو القائمة فارغةً أو تحوي أكثر من عنصر واحد، فستطلق الدالة single()‎ استثناءً: fun <T> Array<out T>.single(): T fun ByteArray.single(): ...

الدالة toBigInteger()‎ في Kotlin

تحلّل الدالة toBigInteger()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع BigDecimal. البنية العامة inline fun String.toBigInteger(): BigInteger بيئة التشغيل المطلوبة: Kotlin 1.2 ، JVM. تحلّل الدالة toBigInteger()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع java.math.BigInteger وتعيد الناتج. إن لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. inline fun String.toBigInteger(radix: Int): BigInteger بيئة التشغيل المطلوبة: Kotlin 1.2 ، JVM. تحلّل الدالة toBigInteger()‎ السلسلة النصية التي استٌدعيت عبرها وتحوّلها إلى عدد من النوع java.math.BigInteger وتعيد الناتج. إن ...

الدالة toInt()‎ في Kotlin

تحلّل الدالة toInt()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد صحيح. البنية العامة inline actual fun String.toInt(): Int تحلّل الدالة toInt()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد صحيح. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. inline actual fun String.toInt(radix: Int): Int بيئة التشغيل المطلوبة: Kotlin 1.1. تحلّل الدالة toInt()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد صحيح. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. أما في حال كان المعامل radix المعطى أساسًا غير ...

الدالة toByte()‎ في Kotlin

تحلّل الدالة toByte()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع Byte. البنية العامة inline actual fun String.toByte(): Byte تحلّل الدالة toByte()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع Byte ثم تعيد الناتج. إن لم تكن السلسلة النصية تمثل عددًا، فسيُطلق الاستثناء NumberFormatException. inline actual fun String.toByte(radix: Int): Byte بيئة التشغيل المطلوبة:Kotlin 1.1. تحلّل الدالة toByte()‎ السلسلة النصية التي استٌدعيت عبرها وتحوّلها إلى عدد من النوع Byte وتعيد الناتج. إن لم تكن السلسلة النصية تمثل عددًا، فسيُطلق ...

الدالة toShort()‎ في Kotlin

تحلّل الدالة toShort()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد قصير. البنية العامة inline actual fun String.toShort(): Short تحلّل الدالة toShort()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد قصير. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. inline actual fun String.toShort(radix: Int): Short الإصدار المطلوب:Kotlin 1.1. تحلّل الدالة toShort()‎ السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد قصير. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. أما في حال كان المعامل radix المعطى أساسًا غير صالح لتحويل السلسلة ...

الاستثناءات في بايثون

قد تكون التعابير البرمجية في الشيفرة صحيحة من ناحية الصيغة، لكن قد يؤدي تنفيذ تلك الشيفرة إلى التسبب في حدوث الأخطاء. تسمّى الأخطاء المُكتشفة أثناء تنفيذ الشيفرة بالاستثناءات (exceptions) وقد تتسبب في إيقاف عمل البرنامج (fatal) في بعض الأحيان. صيغة الاستثناءات تُنشئ الاستثناءات رسائل خطإٍ مماثلة لما يلي: >>> 10 * (1/0) Traceback (most recent call last):   File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>> 4 + spam*3 Traceback (most recent call last):   File "<stdin>", line 1, in <module> NameError: name 'spam' ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

معالجة الأخطاء (Error Handling) في Laravel

مقدمة عند بدء مشروع Laravel جديد تكون معالجة الأخطاء والاستثناءات مُعدّة لك مُسبقا. تُسجّل كافة الاستثناءات التي يطلقها تطبيقك في الصنف App\Exceptions\Handler ثم تُرجع للمُستخدم. سنتعمّق في هذا الصنف أكثر من خلال هذا التوثيق. الضبط يحدد الخيار debug في ملف إعداداتك config/app.php مقدار المعلومات الفعلية التي تُعرض عن الخطأ للمستخدم. يُعد هذا الاختيار إفتراضيًّا ليحترم قيمة متغيّر البيئة APP_DEBUG التي تُخزّن في ملفك env. . عليك وضع قيمة متغير البيئة APP_DEBUG على true عند التطوير المحلّي. يجب أن توضع هذه ...

التابع Exception.exception في روبي

يُعيد التّابع exception المُستقبل (receiver) إن لم يمرَّر إليه أي وسيط، أو إذا كان الوسيط الممرر إليه هو نفسه المُستقبل. خلا ذلك، يُنشئ كائن استثناءٍ جديد (exception object)من الصنف نفسه على أنّه المستقبل، ولكن مع رسالةٍ مساوية إلى string.to_str. البنية العامة exception(string) → an_exception or exc المعاملات string سلسلةٌ نصيةٌ تمثل الرسالة. القيم المعادة يُعاد المستقبل إن لم يمرر أي وسيط أو كان الوسيط المعطى نفسه المستقبل، أو يعاد كائن استثناء جديد يُمثِّل المستقبل. انظر أيضا التابع new: يُنشئ كائنًا ...

التابع Exception.new في روبي

يُنشئ التابع new كائنًا جديدًا من النوع Exception، ويمرِّر رسالة اختياريًّا إليه. البنية العامة new(msg = nil) → exception المعاملات msg الرّسالة المراد تمريرها. القيم المعادة يُعاد كائنٌ جديدٌ من النوع Exception. انظر أيضا التابع exception: يُعيد المُستقبل (receiver). التابع backtrace: يُعيد أيَّ تتبّعٍ عكسيٍّ (backtrace) مرتبطٍ بالاستثناء. التابع set_backtrace: يضبط معلومات المصفوفة backtrace الخاصة بكائن الاستثناء. مصادر صفحة التابع new في الصنف Exception في توثيق روبي الرسمي.

التابع fail‎ الخاص بالصنف Kernel في روبي

في حال استدعاء التابع fail بدون تمرير أي معامل، فسيُطلق الاستثناء في ‎$!‎‎‎‎ أو يطلق الخطأ RuntimeError إذا كان ‎$!‎ يساوي nil. في حال تمرير سلسلة نصية فقط، فسيُطلَق الخطأ RuntimeError مع إظهار هذه السلسلة النصية كرسالة. خلا ذلك، يجب أن يكون الوسيط الأول اسم الصنف Exception (أو كائنًا يعيد كائنًا من النوع Exception عند إرسال رسالة استثناء). يحدِّد الوسيط الاختياري الثاني الرسالة المرتبطة بالاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء. تُلتقَط الاستثناءات بواسطة الجملة rescue من الكتل ...

التابع raise‎ الخاص بالصنف Kernel في روبي

استدعاء التابع raise بدون تمرير أي معامل يُطلق الاستثناء في ‎$!‎‎‎‎ أو يطلق الخطأ RuntimeError إذا كان ‎$!‎ يساوي nil. في حال تمرير سلسلة نصية فقط، فسيُطلَق الخطأRuntimeError مع إظهار هذه السلسلة النصية كرسالة. خلا ذلك، يجب أن يكون الوسيط الأول اسم الصنف Exception (أو كائنًا يعيد كائنًا من النوع Exception عند إرسال رسالة استثناء). يحدِّد الوسيط الاختياري الثاني الرسالة المرتبطة بالاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء. تُلتقَط الاستثناءات بواسطة الجملة rescue من الكتل begin...end. البنية العامة raise raise(string) raise(exception [, string [, array]])‎ المعاملات string‎ سلسلة نصية تمثل الرسالة المراد إظهارها ...

التحقق من الأنواع (Type Check) والتحويل بينها (Casting) في لغة Kotlin

المعاملين is و ‎!is تدعم لغة Kotlin ميّزة التحقُّق من توافق الكائن مع أحد الأنواع أثناء التنفيذ، وذلك بالاعتماد على المُعامِل is أو صيغته المنفيّة ‎!is كما في الشيفرة: if (obj is String) { print(obj.length) } if (obj !is String) { // !(obj is String) مكافئ للصيغة print("Not a String") } else { print(obj.length) } التحويلات الذكية (Smart Casts) لا حاجة في كثيرٍ من الأحيان لجعل التحويل صريحًا (explicit) في لغة Kotlin لأنّ المترجم (compiler) يتتبَّع ...

التابع Thread.report_on_exception=‎ في روبي

يضبط التابع report_on_exception عند استدعائه بالشكل report_on_exception= boolean‎ حالة "التبليغ عند الاستثناء" (report on exception). عندما تكون القيمة المنطقية هي true، سترث كل المهام الفرعية التي تم إنشاؤها لاحقا الشرط (condition) وتبعث رسالة إلى المجرى ‎$stderr إذا أدى استثناء ما إلى إنهاء مهمة فرعية. يوجد أيضًا تابع نسخة (instance level method) لتعيين هذا الخيار لمهمة فرعية معينة؛ راجع report_on_exception=‎. البنية العامة report_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean التي تمثل الحالة الجديدة لحالة "التبليغ عند الاستثناء". ...

تابع النسخة Thread.abort_on_exception‎ في روبي

يُعيد التابع abort_on_exception حالة الشرط المحلي (thread-local‏) "المقاطعة عند حدوث استثناء؟" (abort on exception) في المهمة الفرعية التي استُدعي معها. القيمة الافتراضية هي false. يوجد أيضًا تابع صنف (class method) لتعيين هذا الخيار في كل المهام الفرعية؛ راجع صفحة abort_on_exception. البنية العامة abort_on_exception→ true or false‎ القيمة المعادة تعاد حالة الشرط المحلي (thread-local‏) "المقاطعة عند حدوث استثناء؟" (abort on exception). في المهمة الفرعية المعطاة. انظر أيضًا التابع abort_on_exception =‎: يضبط عند استدعائه بالشكل abort_on_exception= boolean حالة الشرط المحلي "المقاطعة عند حدوث استثناء؟" (abort on exception) ...

الكلمات المفتاحية (Keywords) والمعاملات (Operators) في لغة Kotlin

 الكلمات المفتاحيّة الثابتة (Hard Keywords) تُعدُّ الكلمات الآتية كلماتٍ مفتاحيّةً في لغة Kotlin وليس ممكنًا استخدامها كمُعرِّفات (identifiers): as تُستخدَم في التحويلات ما بين الأنواع (typecasts) تُحدِّد تسميةً بديلةً (alias) عند عملية الاستيراد (import) as?‎ للتحويلات الحافظة للنوع (safe type casts) break لإنهاء تنفيذ الحلقات (loops) class للتصريح عن الأصناف continue  للاستمرار بالخطوة التالية لأقرب حلقة محيطة (enclosing) do للبدء بحلقة do/while (والتي يُختبَر الشرط فيها لاحقًا) else لتعريف فرعٍ (branch) من تعبير الشرط if والذي سيُنفَّذ عندما يكون الشرط بالقيمة false false ...

تابع النسخة ‎Thread.abort_on_exception=‎‎ في روبي

يضبط التابع abort_on_exception عند استدعائه بالشكل abort_on_exception= boolean حالة الشرط المحلي "المقاطعة عند حدوث استثناء؟" (abort on exception) إلى القيمة المنطقية boolean. فعندما تكون القيمة المنطقية هي true وإذا تم إيقاف هذه المهمة الفرعية بواسطة استثناء، فسيطلق ذلك الاستثناء مجددًا في المهمة الفرعية الرئيسية. يوجد أيضًا تابع صنف (class method) لتعيين هذا الخيار لكل المهام الفرعية، راجع الصفحة abort_on_exception=‎. البنية العامة abort_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean بعد تعيينها إلى حالة الشرط المحلي "المقاطعة عند حدوث استثناء؟" (abort on ...

التابع Thread.abort_on_exception=‎ في روبي

يضبط التابع abort_on_exception عند استدعائه بالشكل abort_on_exception= boolean حالة الشرط العام "المقاطعة عند حدوث استثناء؟" (abort on exception) إلى القيمة المنطقية boolean. عندما تكون القيمة المنطقية هي true، إذا تم إيقاف هذه المهمة الفرعية بواسطة استثناء، فسيطلق ذلك الاستثناء مجددًا في المهمة الفرعية الرئيسية. وستعاد الحالة الجديدة. يوجد أيضًا تابع نسخة (instance method) لتعيين هذا الخيار لمهمة فرعية معينة، راجع الصفحة abort_on_exception=‎. البنية العامة abort_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean بعد ضبطها للشرط العام "المقاطعة ...

التابع Thread.abort_on_exception‎ في روبي

يُعيد التابع abort_on_exception حالة الشرط العام "المقاطعة عند حدوث استثناء؟" (abort on exception). القيمة الافتراضية هي false أي "لا". عند إعطائه القيمة true أي "نعم"، فستوقف أي مهمة فرعية عند حدوث استثناء، وسيُطلق ذلك الاستثناء مجددًا في المهمة الفرعية الرئيسية (main thread). يمكن أيضًا تحديده بواسطة الراية DEBUG$ أو خيار سطر الأوامر ‎-d. يوجد أيضًا تابع نسخة (instance method) لتعيين هذا الخيار في مهمة فرعية معينة، راجع صفحة abort_on_exception لمزيد من المعلومات. البنية العامة abort_on_exception→ true or false‎ القيمة المعادة تعاد ...

التابع Encoding::Converter.last_error في روبي

يُعيد التّابع last_error الكائن exception عند حصول خطأٍ في آخر عملية تحويل أو يعيد القيمة nil إن لم يحصل أي خطأ. تشير القيمة "error" إلى أنَّ الخطأين Encoding::InvalidByteSequenceError وEncoding::UndefinedConversionError نتجا من التّابع convert، وأنَّ invalid_byte_sequence: وincomplete_input: و undefined_conversion: نتجوا من التّابع primitive_convert. البنية العامة last_error → exception or nil القيم المعادة يُعاد الكائن exception عند حصول خطأٍ في آخر عملية تحويل، أو تعاد القيمة nil إذا جرى التحويل الأخير من دون أخطاءٍ. أمثلة مثالٌ عن استخدام التابع last_error: ec = ...

التابع Thread.report_on_exception‎ في روبي

يعيد التابع report_on_exception حالة "التبليغ عند الاستثناء" (report on exception). القيمة الافتراضية هي true منذ روبي 2.5. كل المهام الفرعية التي يتم إنشاؤها عندما تكون قيمة هذه الراية مساوية للقيمة true ستبعث رسالة إلى المجرى stderr$ إذا أنهى استثناء ما هذه المهمة الفرعية. يُستخدَم هذا التابع لإمساك الأخطاء في المهمة الفرعية في وقت مبكر. لكن في بعض الحالات، قد لا ترغب في هذه المخرجات. هناك عدة طرق لتجنب المخرجات الزائدة: إذا لم يكن الاستثناء مقصودًا، فأفضل خيار أمامك هو إصلاح سبب ...

الصنف SignalException في روبي

يًطللق الاستثناء SignalException عند تلقي إشارة ما. begin Process.kill('HUP',Process.pid) sleep # wait for receiver to handle signal sent by Process.kill rescue SignalException => e puts "received Exception #{e}" end ‎ سيُنتج عن تنفيذ هذه الشيفرة ما يلي: received Exception SIGHUP توابع الصنف العامة new ينشئ كائنًا جديدًا من النوع SignalException. توابع النسخة العامة signo يعيد رقم إشارة. مصادر صفحة الصنف SignalException في توثيق روبي الرسمي.

التعابير الاصطلاحية (Idioms) في لغة Kotlin

تعرِض هذه الصفحة عددًا من التعابير الاصطلاحيّة المستخدَمة بكثرةٍ في لغة Kotlin، ولأيّ اصطلاحٍ جديدٍ لم يُذكَر فيمكنك تعديل هذه الصفحة لإضافته. إنشاء كائنات نقل البيانات DTO:‏ Data Transfer Objects (الكائنات POJO/POCO) ليكن الصنف (class) الآتي باسم Customer: data class Customer(val name: String, val email: String) وله التوابع الوظيفيّة (functional methods) الآتية: توابع getter (وتوابع setter في حالة المتحولات من النوع var) لكافة الخاصّيّات (properties) equals()‎ hashCode()‎ toString()‎ copy()‎ component1()‎ و component2()‎ ...إلخ. وذلك لكافة الخاصّيّات (properties) في الصنف (راجع أصناف البيانات ...

تعريف أحداث التنظيف clean-up actions

تمتلك عبارة try جزءًا اختياريًا آخر، والهدف منه هو تعريف أحداث تنظيف (clean-up actions) يجب تنفيذها في جميع الظروف، فعلى سبيل المثال: >>> try: ...     raise KeyboardInterrupt ... finally: ...     print('Goodbye, world!') ... Goodbye, world! KeyboardInterrupt Traceback (most recent call last):   File "<stdin>", line 2, in <module> تُنفّذ عبارة finally دائمًا قبل الخروج من عبارة try، سواء أحدث الاستثناء أم لم يحدث. وعند حدوث استثناء في عبارة try ولم تجر معالجته بواسطة عبارة except (أو أنّه حدث في عبارة except أو else) فإنّه يعاد إطلاق ذلك ...

تعريف أحداث التنظيف clean-up actions

تمتلك عبارة try جزءًا اختياريًا آخر، والهدف منه هو تعريف أحداث تنظيف (clean-up actions) يجب تنفيذها في جميع الظروف، فعلى سبيل المثال: >>> try: ...     raise KeyboardInterrupt ... finally: ...     print('Goodbye, world!') ... Goodbye, world! KeyboardInterrupt Traceback (most recent call last):   File "<stdin>", line 2, in <module> تُنفّذ عبارة finally دائمًا قبل الخروج من عبارة try، سواء أحدث الاستثناء أم لم يحدث. وعند حدوث استثناء في عبارة try ولم تجر معالجته بواسطة عبارة except (أو أنّه حدث في عبارة except أو else) فإنّه يعاد إطلاق ذلك ...

أمان القيم الفارغة (Null) في لغة Kotlin

الأنواع Nullable والأنواع Non-Null يهدف نظام الأنواع في Kotlin إلى الحدِّ من أخطار القيمة الفارغة null في الشيفرات، إذ إنّ أحد الأخطاء الأكثر شيوعًا في لغات البرمجة -بما فيها لغة Java- هو أنّ محاولة الوصول إلى مرجعيّةٍ تحتوي على القيمة null سيؤدي إلى حدوث استثناءٍ مرجعيّ (reference exception)، ويُدعى هذا الاستثناء في لغة Java باسم NullPointerException أو NPE اختصارًا، أمّا Kotlin فهي تحدُّ من هذا الاستثناء ليقتصر على الحالات الآتية: استدعاءٌ صريحٌ بالشكل: throw NullPointerException()‎ استخدام المعامل !! (كما سيُشرح لاحقًا) ...

التابع Exception.to_s في روبي

يُعيد التّابع to_s رسالة الاستثناء (أو اسم الاستثناء إذا لم تعيَّن أية رسالة). البنية العامة to_s → string القيم المعادة تُعاد سلسلةٌ نصيةٌ تحوي رسالة الاستثناء أو اسم الاستثناء إذا لم تُعيَّن أية رسالة. انظر أيضا التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. التابع message: يُعيد ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. التابع new: يُنشئ كائنًا جديدًا من النّوع Exception، ويمرِّر رسالةً اختياريًّا إليه. مصادر صفحة التابع to_s في الصنف Exception في توثيق روبي ...

التابع Exception.backtrace_locations في روبي

يُعيد التّابع backtrace_locations أي تتبع عكسي (backtrace) مرتبط بالاستثناء. هذا التّابع شبيه بالتّابع backtrace، ولكن الأخير هو مصفوفة من Thread::Backtrace::Location. حاليًّا، لا يتأثّر هذا التّابع بالتّابع set_backtrace. البنية العامة backtrace_locations → array القيم المعادة تُعاد مصفوفة تمثل التتبع العكسي المترافق مع الاستثناء. انظر أيضا التابع backtrace: يُعيد أيَّ تتبّعٍ عكسيٍّ (backtrace) مرتبطٍ بالاستثناء. التابع set_backtrace: يضبط معلومات المصفوفة backtrace الخاصة بكائن الاستثناء. التابع exception: يُعيد المُستقبل (receiver). مصادر صفحة التابع backtrace_locations في الصنف Exception في توثيق روبي الرسمي.

التابع Exception.cause في روبي

يُعيد التّابع cause الاستثناء السابق (!$) عندما يُرمَى هذا الاستثناء. هذا مفيد في الاستثناءات المغلقة والاحتفاظ بمعلومات الاستثناء الأصلية. البنية العامة cause → an_exception or nil القيم المعادة يعاد الاستثناء الذي سبق الاستثناء المرمي، أو تعاد القيمة nil خلا ذلك. انظر أيضا التابع message: يُعيد ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. التابع new: يُنشئ كائنًا جديدًا من النّوع Exception، ويمرِّر رسالةً اختياريًّا إليه. التابع inspect: يُعيد اسم صنف الاستثناء ورسالته. التابع backtrace: يُعيد أيَّ تتبّعٍ ...

تابع النسخة Thread.report_on_exception=‎ في روبي

يضبط التابع report_on_exception عند استدعائه بالشكل report_on_exception= boolean حالة "التبليغ عند حصول استثناء" (report on exception) للمهمة الفرعية المحلية المعطاة إلى القيمة boolean. عند تكون القيمةالمنطقية هي true، ستُطبع رسالة على المجرى ‎$stderr إذا أدى استثناء ما إلى إنهاء المهمة الفرعية. يوجد أيضًا تابع صنف (class level method) لتعيين هذا الخيار لجميع المهام الفرعية الجديدة؛ راجع الصفحة report_on_exception=‎. البنية العامة report_on_exception= boolean→ true or false‎ القيمة المعادة تعاد القيمة المنطقية boolean بعد تعيينها إلى حالة "التبليغ عند حصول استثناء". انظر أيضًا ...

تابع النسخة Thread.report_on_exception‎ في روبي

يعيد التابع report_on_exception حالة "التبليغ عند حصول استثناء" (report on exception) للمهمة الفرعية المحلية. القيمة الافتراضية عند إنشاء المهمة الفرعية هي قيمة الراية العامة report_on_exception. يوجد أيضًا تابع صنف (class level method) لتعيين هذا الخيار لكل المهام الفرعية؛ راجع صفحة report_on_exception. البنية العامة report_on_exception→ true or false‎ القيمة المعادة تعاد قيمة منطقية تمثل حالة "التبليغ عند حصول استثناء". انظر أيضا التابع raise: يطلق استثناء من مهمة فرعية معينة. التابع report_on_exception=‎: يضبط عند استدعائه بالشكل report_on_exception= boolean حالة "التبليغ عند حصول استثناء" (report on exception) للمهمة ...

الاستثناءات المعرفة من طرف المستخدم

يمكن للمستخدم إنشاء صنف استثناء جديد (راجع قسم الأصناف في بايثون للمزيد من المعلومات)، ويجب أن تكون الاستثناءات مشتقّة من الصنف Exception سواء أكان ذلك بصورة مباشرة أو غير مباشرة. يمكن تعريف أصناف الاستثناءات لتؤدي نفس العمل الذي يؤدّيه أيّ صنف آخر، ولكنّها تكون في العادة بسيطة، وتقدّم في أغلب الأحيان عددًا من الخاصيات التي تسمح لمعالجات الاستثناءات باستخراج المعلومات الخاصة بالخطأ. عند إنشاء وحدة لها القدرة على إطلاق استثناءات مختلفة، فمن الشائع إنشاء صنف أساس للاستثناءات يُعرّف بواسطة تلك ...

الاستثناءات المعرفة من طرف المستخدم

يمكن للمستخدم إنشاء صنف استثناء جديد (راجع قسم الأصناف في بايثون للمزيد من المعلومات)، ويجب أن تكون الاستثناءات مشتقّة من الصنف Exception سواء أكان ذلك بصورة مباشرة أو غير مباشرة. يمكن تعريف أصناف الاستثناءات لتؤدي نفس العمل الذي يؤدّيه أيّ صنف آخر، ولكنّها تكون في العادة بسيطة، وتقدّم في أغلب الأحيان عددًا من الخاصيات التي تسمح لمعالجات الاستثناءات باستخراج المعلومات الخاصة بالخطأ. عند إنشاء وحدة لها القدرة على إطلاق استثناءات مختلفة، فمن الشائع إنشاء صنف أساس للاستثناءات يُعرّف بواسطة تلك ...

التابع Thread.raise‎ في روبي

يطلق التابع raise استثناء من مهمة فرعية معينة. لا يلزم أن يكون الُمستدعي (caller) هو المهمة الفرعية التي استُدعي التابع معها. انظر صفحة التابع Kernel.raise لمزيد من المعلومات. البنية العامة raise raise(string) raise(exception [, string [, array]])‎ أمثلة مثال على استخدام التابع raise‎: Thread.abort_on_exception = true a = Thread.new { sleep(200) } a.raise("Gotcha")‎ هذا سوف ينتج: prog.rb:3: Gotcha (RuntimeError) from prog.rb:2:in `initialize' from prog.rb:2:in `new' from prog.rb:2‎ انظر أيضا التابع abort_on_exception: يُعيد حالة الشرط المحلي (thread-local‏) "المقاطعة عند حدوث استثناء؟" (abort on exception) في المهمة الفرعية التي ...

التابع Exception.backtrace في روبي

يعيد التّابع backtrace أيَّ تتبع عكسي (backtrace) مرتبط بالاستثناء. التتبع العكسي (backtrace) هو مصفوفةٌ من السّلاسل النصية، تحوي كل واحدةٍ منها إمّا "filename:lineNo: in 'method'‎'' أو ".filename:lineNo''. البنية العامة backtrace → array القيم المعادة تُعاد مصفوفة تمثل التتبع العكسي. أمثلة مثالٌ عن استخدام التابع backtrace: def a raise "boom" end def b a() end begin b() rescue => detail print detail.backtrace.join("\n") end سيعطي هذا المثال عند تنفيذه الناتج التالي: prog.rb:2:in `a' prog.rb:6:in `b' prog.rb:10 انظر أيضا التابع backtrace_locations: يُعيد أي تتبع عكسي (backtrace) مرتبط بالاستثناء. ...

التابع exit‎ الخاص بالصنف Kernel في روبي

يبدأ التابع exit عملية إنهاء البرنامج في روبي، عن طريق إطلاق استثناء SystemExit. من الممكن التقاط هذا الاستثناء. begin exit puts "never get here" rescue SystemExit puts "rescued a SystemExit exception" end puts "after begin block" ينتج عند تنفيذه: rescued a SystemExit exception after begin block‎ قبل الإنهاء مباشرة، تنفذ روبي كل التوابع والكتل المرتبطة بالشيفرة عبر التابع at_exit، وتنفِّذ كل الكائنات المُنهيَة (object finalizers، راجع ObjectSpace.define_finalizer). at_exit { puts "at_exit function" } ObjectSpace.define_finalizer("string", proc { puts "in finalizer" }) exit ينتج عند تنفيذ الشيفرة: ...

الأخطاء في PHP

مقدمة لا مفرّ من الوقوع في الأخطاء مهما كنّا حريصين في كتابة الشيفرة. تبلغ PHP عن الأخطاء والتحذيرات والملاحظات التي تحدث بسبب المشاكل الحاصلة في وقت التشغيل، وتصبح عملية تنقيح الأخطاء (Debugging) أكثر سهولة عند معرفة كيفية الكشف عن هذه الأخطاء والتعامل معها. الأساسيات تبلّغ PHP عن الأخطاء الناجمة عن عدد من الأخطاء الداخلية، ويمكن الاستفادة من ذلك في الكشف عن عدد من الحالات المختلفة ويمكن عرضها و/أو تسجيلها حسب الحاجة. تقسم الأخطاء في PHP إلى أنواع مختلفة، وهناك قائمة ...

الأخطاء في PHP

مقدمة لا مفرّ من الوقوع في الأخطاء مهما كنّا حريصين في كتابة الشيفرة. تبلغ PHP عن الأخطاء والتحذيرات والملاحظات التي تحدث بسبب المشاكل الحاصلة في وقت التشغيل، وتصبح عملية تنقيح الأخطاء (Debugging) أكثر سهولة عند معرفة كيفية الكشف عن هذه الأخطاء والتعامل معها. الأساسيات تبلّغ PHP عن الأخطاء الناجمة عن عدد من الأخطاء الداخلية، ويمكن الاستفادة من ذلك في الكشف عن عدد من الحالات المختلفة ويمكن عرضها و/أو تسجيلها حسب الحاجة. تقسم الأخطاء في PHP إلى أنواع مختلفة، وهناك قائمة ...

التابع Process.exit في روبي

يبدأ التابع exit عملية الإنهاء لشيفرة روبي البرمجية عبر اطلاق الاستثناء SystemExit. هذا الاستثناء قد يُلتقَط. البنية العامة exit(status=true) Kernel::exit(status=true) Process::exit(status=true) المعاملات status معامل اختياري يُستعمَل لإعادة حالة الشيفرة للبيئة المستدعية. القيمة true والقيمة false للحالة المعادة تشيران إلى النجاح والفشل على التوالي. تفسير القيم العددية الأخرى المعطاة يعتمد على نظام التشغيل آنذاك. القيمة الافتراضية هي: true. أمثلة مثال على استعمال التابع exit: begin exit puts "never get here" rescue SystemExit puts "rescued a SystemExit exception" end puts "after begin block" ينتج عن تنفيذ ...

الخاصّيّات (Properties) وحقول البيانات (Fields) في لغة Kotlin

التصريح عن الخاصّيّات (Declaring Properties) قد تحتوي الأصناف في لغة Kotlin على الخاصّيّات المعرَّفة إما كقيمٍ متغيّرةٍ عبر الكلمة المفتاحيّة var أو كقيمٍ ثابتةٍ للقراءة فقط (read-only) عبر الكلمة المفتاحيّة val، مثل: class Address { var name: String = ... var street: String = ... var city: String = ... var state: String? = ... var zip: String = ... } إذ يُمكن الوصول للخصائص عبر اسمها ...

الصنف Thread في روبي

المهام الفرعية (Threads، وتدعى "الخيوط" أيضًا) هي الطريقة التي تنفذ بها روبي البرمجة المتزامنة (concurrent programming). البرامج التي تتطلب تنفيذ عدة مهام فرعية يمكنها استخدام الصنف Thread. على سبيل المثال، يمكننا إنشاء مهمة فرعية جديدة منفصلة عن المهمة الرئيسية باستخدام التابع new. thr = Thread.new { puts "Whats the big deal" }‎ ثم يمكننا إيقاف تنفيذ المهمة الفرعية الرئيسية مؤقتًا إلى حين إنتهاء المهمة الفرعية خاصتنا باستخدام التابع join: thr.join #=> "Whats the big deal"‎ في حال عدم استدعاء التابع join قبل ...

الصنف RuntimeError في روبي

يُطلق الاستثناء RuntimeError عند محاولة تنفيذ عملية غير صالحة. في حال عدم تحديد صنف الاستثناء Exception، سيُطلق الاستثناء Kernel.raise. الشيفرة التالية: raise "ouch" ستطلق الاستثناء RuntimeError بالشكل التالي: RuntimeError: ouch مصادر صفحة الصنف RuntimeError في توثيق روبي الرسمي.

الصنف ScriptError في روبي

الصنف ScriptError هو الصنف الأب (superclass) لأصناف الأخطاء التي تُطلق عندما لا يمكن تنفيذ الشيفرة بسبب إحدى الأخطاء التالية: LoadError أو NotImplementedError أو SyntaxError. لاحظ أنَّ النوع ScriptError من أخطاء ليست قياسية (أي ليست من الأخطاء StandardError)، ولن تتم معالجتها ما لم يتم تحديدها بشكل صريح (أو تحديد صنفها الأب Exception). مصادر صفحة الصنف ScriptError في توثيق روبي الرسمي.

الصنف StandardError في روبي

معظم أخطاء الأنواع تنحدر من الصنف StandardError؛ ستُعالج الكتلة rescue التي لا تحدد الصنف Exception بشكل صريح كل الأخطاء StandardError (دون غيرها). def foo raise "Oups" end foo rescue "Hello" #=> "Hello" الشيفرة التالية: require 'does/not/exist' rescue "Hi" ستطلق استثناء بالشكل التالي: LoadError: no such file to load -- does/not/exist مصادر صفحة الصنف StandardError في توثيق روبي الرسمي.

الاستثناءات المضمنة داخليًا في بايثون

يجب أن تكون جميع الاستثناءات في لغة بايثون مُنشأة من صنف مُشتق من الصنف BaseException. عند ذكر صنف مُحدد في جملة except خلال تعبير try، فإن جملة except تُعالج أي استثناء مُشتق من ذلك الصنف المُحدَّد (وليس الاستثناءات المُشتقة من الصنف الذي اُشتقت منه). إذا كان لدينا صنفا استثناءات غير مرتبطين بعلاقة وراثة فهما غير متماثلان حتى لو كانا بنفس الاسم. من الممكن توليد الاستثناءات الداخلية المذكورة بالأسفل بواسطة مُفسر بايثون أو الدوال الداخلية.  تملك الاستثناءات "قيمة مرتبطة" تُشير بالتفصيل ...

التحميل التلقائي للأصناف في PHP

يُنشئ أغلب المطوّرين الذي يكتبون تطبيقات كائنية التوجه ملف PHP واحد لكل صنف. وهنا تظهر مشكلة مزعجة للغاية، وهي الحاجة إلى كتابة قائمة طويلة بالأصناف التي يجب تضمينها للبدء بتنفيذ الشيفرة (قائمة لكل صنف). لم يعد هذا الأمر ضروريًا في الإصدار الخامس من اللغة، إذ تسجّل الدالة spl_autoload_register()‎‎ عددًا غير محدّدٍ من المحمّلات التلقائية لتتيح إمكانية التحميل التلقائي للأصناف والواجهات غير المعرّفة في ملف الشيفرة. يمنح تسجيلُ المحمّلات التلقائية اللغةَ فرصة أخيرة لتحميل الصنف أو الواجهة قبل أن تتوقف الشيفرة ...

التحميل التلقائي للأصناف في PHP

يُنشئ أغلب المطوّرين الذي يكتبون تطبيقات كائنية التوجه ملف PHP واحد لكل صنف. وهنا تظهر مشكلة مزعجة للغاية، وهي الحاجة إلى كتابة قائمة طويلة بالأصناف التي يجب تضمينها للبدء بتنفيذ الشيفرة (قائمة لكل صنف). لم يعد هذا الأمر ضروريًا في الإصدار الخامس من اللغة، إذ تسجّل الدالة spl_autoload_register()‎‎ عددًا غير محدّدٍ من المحمّلات التلقائية لتتيح إمكانية التحميل التلقائي للأصناف والواجهات غير المعرّفة في ملف الشيفرة. يمنح تسجيلُ المحمّلات التلقائية اللغةَ فرصة أخيرة لتحميل الصنف أو الواجهة قبل أن تتوقف الشيفرة ...

التابع Thread.handle_interrupt‎ في روبي

يغير التابع handle_interrupt توقيت المقاطعة غير المتزامنة (asynchronous interrupt timing). المقاطعة (interrupt) يعني الحدث غير المتزامن (asynchronous event) والإجراء المقابل raise و kill وإشارة المسك (signal trap، غير مدعومة حاليًا) وعملية إنهاء المهمة الفرعية الرئيسية (عند إنهاء المهمة الفرعية الرئيسية، فسيتم إنهاء كل المهام الفرعية الأخرى). البنية العامة handle_interrupt(hash) { ... } → result of the block‎ يحتوي المعامل hash المعطى على أزواج على شاكلة ExceptionClass => :TimingSymbol إذ ExceptionClass هو مقاطعة (interrupt) المٌعالج من قبل الكتلة المعطاة. أما TimingSymbol فيمكن أن يكون ...

التابع ?Exception.to_tty في روبي

يتحقّق التّابع ?to_tty فيما إذا كانت رسائل الاستثناء ستُرسل إلى الطرفية tty. البنية العامة to_tty? → true or false القيم المعادة تُعاد القيمة true إذا كانت رسائل الاستثناء ستُرسل إلى الطرفية tty، أو تُعاد القيمة false خلاف ذلك. انظر أيضا التابع to_s: يُعيد رسالة الاستثناء (أو اسم الاستثناء إذا لم يتم تعيين أي رسالة). التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. مصادر صفحة التابع ?to_tty في الصنف Exception في توثيق روبي الرسمي.

الدالة not()‎ في Kotlin

تعكس الدالة not()‎ القيمة المنطقيَّة المستدعاة معها. يمكن استعمال المعامل ! عوضًا عن هذه الدالة. البنية العامة operator fun not(): Boolean المعاملات other القيمة المنطقية الأخرى التي ستطبق عليها العملية. القيمة المعادة يعاد عكس القيمة المنطقية المعطاة. أمثلة استخدام الدالة ()not لعكس قيمة منطقية معينة: fun main(args: Array<String>) { val x = true println(x.not()) // false println(!x) // false } انظر أيضًا الدالة and()‎: تجري العملية and المنطقية ...

الدالة or()‎ في Kotlin

تجري الدالة or()‎ العملية or المنطقية بين قيمتين منطقيتين؛ خلافًا للمعامل ||، تتحقق هذه الدالة من كلا القيمتين المنطقيتين. البنية العامة infix fun or(other: Boolean): Boolean وجود الكلمة المفتاحية infix يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً. المعاملات other القيمة المنطقية الأخرى التي ستطبق عليها العملية. القيمة المعادة تعاد قيمة منطقية تكون ناتج إجراء العملية or على القيمتين المعطيتين. أمثلة استخدام الدالة ()or لتطبيق العملية or على قيمتين منطقيتين: fun ...

الدالة and()‎ في Kotlin

تجري الدالة and()‎ العملية and المنطقية بين قيمتين منطقيتين؛ خلافًا للمعامل &&، تتحقق هذه الدالة من كلا القيمتين المنطقيتين. البنية العامة infix fun and(other: Boolean): Boolean وجود الكلمة المفتاحية infix يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً. المعاملات other القيمة المنطقية الأخرى التي ستطبق عليها العملية. القيمة المعادة تعاد قيمة منطقية تكون ناتج إجراء العملية and على القيمتين المعطيتين. أمثلة استخدام الدالة ()and لتطبيق العملية and على قيمتين منطقيتين: fun ...

Kotlin/Native

ما هي تقنية Kotlin/Native؟ تُستخدَم تقنية Kotlin/Native لترجمة شيفرات Kotlin إلى الصيغة الثنائيّة الأساسيّة (native binaries) والتي لا تتطلَّب آلةً افتراضيّة (virtual machine) لتشغيلها، وتشمل كلًا من المعالجات الخلفيّة (أو السند الخلفي [backend]) المعتمدة على تقنيات مكتبة LLVM للمترجِم (compiler) وكذلك تعريف الاستخدام الأساسيّ (native implementation) من مكتبة التشغيل (runtime) في Kotlin، وقد صُمّمت هذه التقنية للسماح بالترجمة في منصّات العمل التي تكون فيها الآلات الافتراضيّة غير متاحةٍ أو مرغوبةٍ (مثل أنظمة iOS والأهداف المدمجة [embedded targets])، أو عندما يحتاج ...

الدالة ‎‎to()‎ في Kotlin

تنشئ الدالة to()‎ عنصرًا من النوع Pair مكونًا من الكائن الذي استُدعي معه والمعامل الذي مُرّر إليه، أي العنصر that. البنية العامة infix fun <A, B> A.to(that: B): Pair<A, B> يُلاحَظ وجود الكلمة المفتاحية infix للدلالة على أن هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً، وللمزيد من التفاصيل راجع توثيق التدوين الداخلي للدوال (infix functions). المعاملات that الكائن المراد استعماله مع الكائن المعطى في إنشاء كائن من ...

الدالة itertools.zip_longest()‎ في بايثون

تعيد الدّالة itertools.zip_longest()‎ مُكرّرًا يُركّب العناصر من كلّ كائن من الكائنات القابلة للتّكرار المُعطاة. إن كانت الكائنات القابلة للتّكرار غير مُتساويّة في الطّول، فستُستخدم قيمة لملء الفراغات. يُكمل التّكرار إلى أن تنتهي قيم أطول كائن من الكائنات القابلة للتّكرار. البنية العامة itertools.zip_longest(*iterables, fillvalue=None) المعاملات iterables الكائنات القابلة للتّكرار المُراد تركيبها. fillvalue القيمة التي ستُملؤ بها الفراغات. إن لم تُعيّن قيمة للمُعامل فالقيمة الافتراضيّة تكون القيمةَ None. القيمة المعادة مُكرّر يُعيد صفوفًا تُركّب عناصرها من عناصر الكائنات القابلة للتّكرار المُعطاة، ويملؤ ...

التابع Exception.inspect في روبي

يُعيد التّابع inspect اسم صنف الاستثناء ورسالته. البنية العامة inspect → string القيم المعادة تُعاد سلسلةٌ نصيةٌ تحوي اسم صنف الاستثناء ورسالته. انظر أيضا التابع to_s: يُعيد رسالة الاستثناء (أو اسم الاستثناء إذا لم يتم تعيين أي رسالة). التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. التابع message: يُعيد ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. مصادر صفحة التابع inspect في الصنف Exception في توثيق روبي الرسمي.

الصنف ArgumentError في روبي

يُطلق الاستثناء ArgumentError عندما تكون الوسائط (arguments) غير صالحة، ولا يكون هناك صنف Exception أكثر تحديدًا. تفحَّص المثال التالي الذي يشرح حالة تمرير عدد غير مناسب من الوسائط: [1, 2, 3].first(4, 5) سيُطلق عند تنفيذ هذه الشيفرة الاستثناء ArgumentError: ArgumentError: wrong number of arguments (given 2, expected 1) أما المثال التالي، فيشرح حالة تمرير وسيط غير مقبول: [1, 2, 3].first(-4) سيُطلق عند تنفيذ هذه الشيفرة الاستثناء ArgumentError: ArgumentError: negative array size مصادر صفحة ArgumentError في التوثيق الرسمي للغة ruby

التابع Exception.message في روبي

يُعيد التّابع message ناتج استدعاء التّابع Exception.to_s. ويُعيد هذا عادةً رسالة الاستثناء أو اسمه. البنية العامة message → string القيم المعادة تُعاد سلسلةٌ نصيةٌ تحوي رسالة أو اسم الاستثناء والذي يكون ناتج استدعاء Exception.to_s. انظر أيضا التابع to_s: يُعيد رسالة الاستثناء (أو اسم الاستثناء إذا لم يتم تعيين أي رسالة). التابع full_message: يُعيد سلسلةً نصيةً منسّقةً من الاستثناء. التابع ?to_tty: يتحقّق فيما إذا كانت رسائل الاستثناء ستُرسل إلى الطرفية tty. مصادر صفحة التابع message في الصنف Exception في توثيق روبي ...

التابع Exception.set_backtrace في روبي

يضبط التّابع set_backtrace معلومات المصفوفة backtrace الخاصة بكائن الاستثناء. مصفوفة التتبع العكسي (backtrace) يجب أن تتكون من عدة سلاسل نصية أو سلسلة نصية واحدة بالتنسيق الموصوف في التابع backtrace. البنية العامة set_backtrace(backtrace) → array المعاملات backtrace المحتوى الجديد لمصفوفة التتبع العكسي الذي يراد تعيينه. القيم المعادة تُعاد مصفوفة backtrace جديدة بعد ضبط محتواها إلى backtrace. انظر أيضا التابع backtrace: يُعيد أيَّ تتبّعٍ عكسيٍّ (backtrace) مرتبطٍ بالاستثناء. التابع backtrace_locations: يُعيد أي تتبع عكسي (backtrace) مرتبط بالاستثناء. مصادر صفحة التابع set_backtrace في ...

معالجة الاستثناءات في روبي

يتمّ التعامل مع الاستثناءات بعد الكلمة rescue في الكتلة begin/end: begin  # الشيفرة التي قد تسبب ظهور استثناء برمجي rescue  # معالجة الاستثناء end  إذا كنت ضمن تابع، فلست بحاجة لاستخدام begin و end إلا إذا كنت ترغب بحدّ النّطاق الخاص بالاستثناء الذي ترغب بمعالجته: def my_method  # ... rescue  # ... end نفس الأمر يطبّق في الأصناف (classes) والوحدات (modules). يمكنك إسناد استثناء إلى متغيّر محليّ باستخدام الرمز ‎=>‎ متبوعًا باسم المتغيّر، وذلك في نهاية السطر الخاص بالكلمة rescue: begin  # ... rescue => exception  warn exception.message  raise # كرر ظهور ...

الدالة ()os.closerange في بايثون

تُغلِق الدالة واصفات الملفات بدءً من الواصِف المُمرَّر للمعامل fd_low وصولًا إلى الواصِف الذي يَسبُق الواصِف المُمرَّر للمعامل fd_high، مُتجاهلةً الأخطاء التي قد تَحدُث. البنية العامة closerange(fd_low, fd_high) المعاملات fd_low العدد البادِئ لمجال الواصِفات التي ستُغلَق (سيُغلَق الواصِف المُقابِل لهذا العدد). fd_high العدد المُمثِّل لنهاية مجال الواصِفات التي ستُغلَق (لن يُغلَق الواصِف المُقابِل لهذا العدد). القيمة المعادة لا تُعيد الدالة أي قيمة (أي أنَّ قيمتها المعادة None). أمثلة يُكافِئ استخدام الدالة تنفيذ الكود (ولكن الدالة تفعل ذلك بشكل أسرع): import ...

الأنواع المُعمَّمة (Generics) في لغة Kotlin

معاملات الأنواع (Type Parameters) قد تحتوي الأصناف (classes) -كما هو الحال في لغة Java- على معاملات للأنواع (type parameters) مثل: class Box<T>(t: T) { var value = t } ولإنشاء كائنٍ (instance) من هذا الصنف يجب تحديد النوع كما في الشيفرة الآتية: val box: Box<Int> = Box<Int>(1) أمّا إن كان بالإمكان معرفة (infer) المعاملات إمّا من خلال معاملات الباني (constructor arguments) أو بأيّ وسيلةٍ أخرى فيمكن حينئذٍ حذف نوع المعاملات، مثل: val box = Box(1) // القيمة 1 لها ...

الدالة ‎‎jQuery.getScript()‎‎ في jQuery

jQuery.getScript( url [, success ] )‎ القيم المعادة تعيد كائنًا من النوع jqXHR. الوصف تجلب هذه الدالة ملف JavaScript من الخادم باستعمال طلب HTTP عبر الطريقة GET ثمَّ يُنفِّذه. jQuery.getScript( url [, success ] )‎ أُضيفت مع الإصدار: 1.0. url سلسلة نصية تحتوي على الرابط URL الذي سيُرسَل الطلب إليه. success دالةٌ من الشكل Function( String script, String textStatus, jqXHR jqXHR )‎ يراد تنفيذها إن نجح الطلب. هذه الدالة هي اختزالٌ للدالة jQuery.ajax()‎، إذ تكافئ: $.ajax({ url: url, ...

الدالة ‎‎jQuery.getScript()‎‎ في jQuery

jQuery.getScript( url [, success ] )‎ القيم المعادة تعيد كائنًا من النوع jqXHR. الوصف تجلب هذه الدالة ملف JavaScript من الخادم باستعمال طلب HTTP عبر الطريقة GET ثمَّ يُنفِّذه. jQuery.getScript( url [, success ] )‎ أُضيفت مع الإصدار: 1.0. url سلسلة نصية تحتوي على الرابط URL الذي سيُرسَل الطلب إليه. success دالةٌ من الشكل Function( String script, String textStatus, jqXHR jqXHR )‎ يراد تنفيذها إن نجح الطلب. هذه الدالة هي اختزالٌ للدالة jQuery.ajax()‎، إذ تكافئ: $.ajax({ url: url, ...

الدالة itertools.islice()‎ في بايثون

تعيد الدّالة itertools.islice()‎ مُكرّرًا يُعيد عناصر مُنتقاة من الكائن القابل للتّكرار المُعطى. تُنتقى العناصر بتقطيع الكائن القابل للتّكرار حسب المُعاملات المُعطاة للدّالة. البنية العامة itertools.islice(iterable, stop) itertools.islice(iterable, start, stop[, step]) المعاملات iterable الكائن القابل للتّكرار المرغوب تقطيع عناصره. start مُعامل اختياريّ يُمثّل نقطة البداية، إن كانت قيمتها لا تُساوي الصّفر، فستُتجاهل عناصر الكائن iterable إلى حين الوصول إلى العنصر الذي يُوافق فهرسه (index) قيمة start. stop مُعامل يُحدّد نقطة التّوقف، إن كانت قيمتُه القيمةَ None فسيستمرّ التّكرار إلى حين انتهاء قيم ...

أخطاء الصيغة في بايثون

قد تكون أخطاء الصيغة (Syntax errors) أو ما يعرف أيضًا بأخطاء الإعراب (Parsing errors) هي أكثر نوع من الأخطاء التي يواجهها المبتدئون عند تعلّم بايثون: >>> while True print('Hello world')   File "<stdin>", line 1     while True print('Hello world')                    ^ SyntaxError: invalid syntax يعيد المفسّر (parser) طباعة الجملة التي تحتوي على الخطأ مع سهم صغير يشير إلى مكان الخطأ ضمن السطر. ويكون الخطأ ناتجًا عن (أو اكتشف في) المكان الذي يسبق السهم. في المثال السابق ...

أخطاء الصيغة في بايثون

قد تكون أخطاء الصيغة (Syntax errors) أو ما يعرف أيضًا بأخطاء الإعراب (Parsing errors) هي أكثر نوع من الأخطاء التي يواجهها المبتدئون عند تعلّم بايثون: >>> while True print('Hello world')   File "<stdin>", line 1     while True print('Hello world')                    ^ SyntaxError: invalid syntax يعيد المفسّر (parser) طباعة الجملة التي تحتوي على الخطأ مع سهم صغير يشير إلى مكان الخطأ ضمن السطر. ويكون الخطأ ناتجًا عن (أو اكتشف في) المكان الذي يسبق السهم. في المثال السابق ...

تبسيط استدعاءات التوابع (Simplifying Method Calls)

تجعل التقنيات التي سيشار إليها في هذا القسم استدعاءات التوابع أبسط وأسهل للفهم والاستيعاب. سيؤدي ذلك بدوره إلى تبسيط الواجهات للتفاعل بين الأصناف. هذه التقنيات هي: إعادة تسمية التوابع (Rename Method) المشكلة: لا يعبِّر اسم التابع عن ما يقوم به. الحل: إعادة تسمية التابع. إضافة المعاملات (Add Parameter) المشكلة: لا يملك التابع بيانات كافية لتنفيذ بعض الإجراءات. الحل: إنشاء معامل جديد لتمرير البيانات الضرورية. حذف المعاملات (Remove Parameter) المشكلة: لا يُستخدم معاملٌ ما في متن التابع. الحل: إزالة المعامل غير ...

أسئلة شائعة عن لغة Kotlin

ما هي لغة Kotlin؟ تُعدُّ Kotlin إحدى لغات البرمجة مفتوحة المصدر (OSS) والمكتوبة ستاتيكيًّا، وتستهدف كلًا من بيئة JVM و Android و JavaScript و Native، وقد طُوِّرت من قِبل شركة JetBrains بدءًا من العام 2010 حيث كانت مفتوحة المصدر منذ بداياتها الأولى، ونٌشر الإصدار الرسميّ Kotlin 1.0 في الشهر الثاني (شباط) من عام 2016. ما النسخة الحاليّة للغة Kotlin؟ نٌشر الإصدار الأخير للغة Kotlin في الأوّل من الشهر الثالث (آذار) من عام 2018 وهو الإصدار Kotlin 1.2.30. هل Kotlin مجانيّة؟ ...

الوحدة Errno في روبي

تعدُّ كائنات الاستثناءات في روبي أصنافًا فرعيةً (subclasses) من الصنف Exception. على أي حال، تُبلِّغ أنظمة التشغيل عادةً عن الأخطاء باستخدام أعدادٍ صحيحةٍ مبسّطةٍ (plain integers). تُنشَأ الوحدة Errno ديناميكيًّا لتنظيم تفاصيل هذه الأخطاء الناتجة عن أنظمة التّشغيل وإرسالها إلى أصناف روبي، مع توليد صنف فرعي من الصنف SystemCallError خاص بكل رقم خطأٍ. عند إنشاء الصّنف الفرعي في الوحدة Errno، ستبدأ تسميته بالاسم ::Errno. تعتمد أسماء الأصناف ::Errno تعتمد على البيئة التي تعمل فيها روبي. ففي منصة يونكس أو ويندوز ...

استخدام لغة Kotlin للتطوير في بيئة Android

تُعدُّ لغة Kotlin أداةً مناسبةً لتطوير تطبيقات Android لأنّها تزوِّد بمنصةٍ للعمل في نظام Android بميّزات لغات البرمجة الحديثة بدون فرض أي قيودٍ جديدة. ميزات استخدام لغة Kotlin للتطوير في بيئة Android التوافقيّة (Compitability): تتوافق لغة Kotlin كليًّا مع بيئة JDK6، وبهذا تتيح  تشغيل التطبيقات المكتوبة بلغة Kotlin على الأجهزة ذات الإصدارات الأقدم من أنظمة Android بدون أي مشاكل تُذكر، كما وتدعم برمجيةُ Android Studio أدوات لغة Kotlin بشكلٍ تامّ ومتوافقٍ مع أنظمة بناء Android. الأداء (Performance): تعمل التطبيقات المكتوبة ...

استخدام لغة Kotlin في نطاق JavaScript

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...

استخدام لغة Kotlin في تطوير تطبيقات الخادم (Server)

تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم (server)؛ إذ تكون الشيفرات فيها دقيقةً ومعبِّرة، وتمتاز بالتوافقيّة التامّة مع لغة Java ومن السهل تعلُّمها بسرعة. ميزات استخدام لغة Kotlin لتطوير تطبيقات الخادم (Server) القدرة على التعبير (Expressiveness): تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها للمنشِئ الحافظ للنوع (type-safe builder) والخاصّيات المُعمّمة (delegated properties)) على إنشاء البنى التجريديّة (abstraction) سهلةِ الاستخدام. قابلية التوسّع (Scalability): تدعم لغة Kotlin ميّزة الروتينات المساعدة (coroutines)، وهي بهذا تتيح -في تطبيقات الخادم- إمكانيّة التوسّع لعددٍ ...

التابع Exception.full_message في روبي

يُعيد التّابع full_message سلسلةً نصيةً منسّقةً من الاستثناء. تُنسّق السلسلة النصية المعادة بنفس التنسيق التي تستعمله روبي عند طبع الاستثناءات uncaught على مجرى الخطأ القياسي (stderr). البنية العامة full_message(highlight: bool, order: [:top or :bottom]) → string المعاملات highlight قيمة منطقية؛ إن كانت true، فسيُرسل معالج الخطأ الافتراضي رسالةً إلى الطرفية tty. القيمة الافتراضية لهذا المعامل تعتمد على ‎$stderr وعلى القيمة التي يعيدها التابع tty?‎ في وقت الاستدعاء. order يحدد كيفية ترتيب الناتج المعاد ويكون إما top: أو bottom:، وتوضع رسالة ...

الدالة sqlite3.complete_statement()‎ في بايثون

تتحقّق الدالة ممّا إذا كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة. البنية العامة sqlite3.complete_statement(sql) المعاملات sql سلسلة نصية تتضمن جملة SQL المراد التحقق ممّا إذا كانت تنتهي بفاصلة منقوطة أو لا. القيمة المعادة تعيد الدالة القيمة True إن كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة. أمثلة يمكن استخدام هذه الدالة لتوفير طبقة حماية لقاعدة بيانات SQLite، وكما هو موضح في المثال التالي: import sqlite3 con = sqlite3.connect(":memory:") con.isolation_level = None cur ...

الحماية CSRF في Laravel

مقدمة يُسهّل Laravel حماية تطبيقك من الهجمات مُزوّرة الطلب عبر المواقع (cross-site request forgery) واختصارها CSRF. تزويرات الطلب عبر المواقع هن نوع من الاستغلال تُنفّذ فيها أوامر غير مُرخّصة نيابة عن المستخدم المصادق عليهالمُستوثق (authenticated user). يُولّد Laravel تلقائيًّا "رمز" CSRF لكل جلسة مستخدم نشطة يديرها التطبيق. يُستخدم هذا الرمز (token) للتحقّق من كون المستخدم المصادق عليه نفس الشخص الذي يقدّم الطلبات للتطبيق. يجب أن تضيف حقل CSRF مخفي في كل مرّة تعرّف فيها نموذج HTML في تطبيقك كي تتثبت ...

الدالة Char.compareTo()‎ في Kotlin

توازن الدالة compareTo()‎ بين قيمة المحرف الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة المحرف الذي استُدعي معها) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. البنية العامة fun compareTo(other: Char): Int المعاملات other المحرف الآخر الذي يراد موازنته مع المحرف المعطى. القيمة المعادة تعاد القيمة 0 إن كانت القيمة المعطاة متساوية مع قيمة الوسيط other، أو تعاد قيمة سالبة إن كانت القيمة الأولى ...

الدالة lastIndexOf()‎ في Kotlin

تجلب الدالة lastIndexOf()‎ فهرس آخر ظهور لعنصر محدَّد من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة lastIndexOf()‎ مع المصفوفات، والمجموعات والقوائم: fun <T> Array<out T>.lastIndexOf(element: T): Int fun ByteArray.lastIndexOf(element: Byte): Int fun ShortArray.lastIndexOf(element: Short): Int fun IntArray.lastIndexOf(element: Int): Int fun LongArray.lastIndexOf(element: Long): Int fun FloatArray.lastIndexOf(element: Float): Int fun DoubleArray.lastIndexOf(element: Double): Int fun BooleanArray.lastIndexOf(element: Boolean): Int fun CharArray.lastIndexOf(element: Char): Int fun <T> Iterable<T>.lastIndexOf(element: T): Int fun <T> List<T>.lastIndexOf(element: T): Int القيم المعادة يعاد فهرس آخر ظهور للعنصر المعطى والموجود في المصفوفة أو المجموعة أو القائمة المعطاة، أو القيمة ‎-1 إن لم ...

عرض (250 السابقة | 250 التالية) (20 | 50 | 100 | 250 | 500).