اذهب إلى المحتوى

السؤال

نشر

مرحبا .. هدا هو الكود 

const sum = (num1: number, num2: number) => {
    console.log(num1 + num2);
    return num1 + num2;
  };

   // sum(5, 5);

  // Adding Try Cath Logic
  // sum(5, 'A'); // Log 5A Err under "A" becuse you put string

  console.log('====================================');
  try {
    sum(5, 1);
    sum(8, 'A');
  } catch (e) {
    console.log('the type you entered is NaN');
  }
  console.log('====================================');

وعند عمل ران فانه يطبع 

====================================
 LOG  6
 LOG  8A

  ===================================

انا اريده ان يظهر لى الاكسبشن 

'the type you entered is NaN'

ما الحل ؟

ملحوظة انا مستخدم تايب سكريبت 

Recommended Posts

  • 0
نشر

هدا هو الحل اخوتى 

وحلولكم صحيحة لكنها لم تنفع مع الموبايل فاانا استخدم رياكت ناتيف

  const sum = (num1: number, num2: number) => {
    return num1 + num2;
  };

  try {
    if (typeof sum(8, 'A') !== 'number'){
      throw new Error('the type you entered is NaN')
    }
  } catch (e) {
    console.log(e);
  }

 

  • 0
نشر

يجب أن تقوم باستخدام الصنف Exception لانشاء كائن منه, فأنت لم تستخدمه, وأيضا أرجو منك حذف السطر التالي من الكود

    console.log(num1 + num2);

لاحظ بعد التعديل كيف يصبح الكود

const sum = (num1: number, num2: number) => {
    return num1 + num2;
  };

  sum(5, 5);

  // Adding Try Cath Logic
  // sum(5, 'A'); // Log 5A Err under "A" becuse you put string

  console.log('====================================');
  try {
    sum(5, 1);
    sum(8, 'A');
  } catch (Exception e) {
    console.log('the type you entered is NaN');
  }
  console.log('====================================');

لاحظ لقد قمت باستخدام الصنف Exception وأنشأت منه كائن اسمه e وذلك لكي يتم اكتشاف الاستثناءات بطريقة جيدة, الآن لو حاولت تنفيذ الكود سوف يكون الناتج كالآتي

[LOG]: "====================================" 
[LOG]: "the type you entered is NaN" 
[LOG]: "===================================="

من المفترض أن يقوم بطباعة ناتج السطرين 

sum(5, 5);
sum(5, 1);

ولكن لم يطبعهما لأننا حذفنا السطر المسؤول عن الطباعة, لطباعة النتيجة يمكنك وضع استدعاء الدالة بداخل جملة الطباعة كالآتي

console.log(sum(5, 5));
console.log(sum(5, 1));

وبعد تنفيذ الكود بالكامل سوف تكون النتيجة كالآتي

[LOG]: 10 
[LOG]: "====================================" 
[LOG]: 6 
[LOG]: "the type you entered is NaN" 
[LOG]: "===================================="

 

  • 0
نشر
بتاريخ 6 دقائق مضت قال محمد أبو عواد:

يجب أن تقوم باستخدام الصنف Exception لانشاء كائن منه, فأنت لم تستخدمه, وأيضا أرجو منك حذف السطر التالي من الكود


    console.log(num1 + num2);

لاحظ بعد التعديل كيف يصبح الكود


const sum = (num1: number, num2: number) => {
    return num1 + num2;
  };

  sum(5, 5);

  // Adding Try Cath Logic
  // sum(5, 'A'); // Log 5A Err under "A" becuse you put string

  console.log('====================================');
  try {
    sum(5, 1);
    sum(8, 'A');
  } catch (Exception e) {
    console.log('the type you entered is NaN');
  }
  console.log('====================================');

لاحظ لقد قمت باستخدام الصنف Exception وأنشأت منه كائن اسمه e وذلك لكي يتم اكتشاف الاستثناءات بطريقة جيدة, الآن لو حاولت تنفيذ الكود سوف يكون الناتج كالآتي


[LOG]: "====================================" 
[LOG]: "the type you entered is NaN" 
[LOG]: "===================================="

من المفترض أن يقوم بطباعة ناتج السطرين 


sum(5, 5);
sum(5, 1);

ولكن لم يطبعهما لأننا حذفنا السطر المسؤول عن الطباعة, لطباعة النتيجة يمكنك وضع استدعاء الدالة بداخل جملة الطباعة كالآتي


console.log(sum(5, 5));
console.log(sum(5, 1));

وبعد تنفيذ الكود بالكامل سوف تكون النتيجة كالآتي


[LOG]: 10 
[LOG]: "====================================" 
[LOG]: 6 
[LOG]: "the type you entered is NaN" 
[LOG]: "===================================="

 

عدرا اخى ظهر خطأ له علاقة ب الاكسبشن والاعتراض على هدا السطر

} catch (Exception ,e) {

حيث كتب فى الكونسول

Unexpected token, expected ")" (18:21)

  • 0
نشر
بتاريخ الآن قال أحمد ابراهيم عبد الله:

عدرا اخى ظهر خطأ له علاقة ب الاكسبشن والاعتراض على هدا السطر

} catch (Exception ,e) {

حيث كتب فى الكونسول

Unexpected token, expected ")" (18:21)

لاحظ أنك تضع فاصلة بجانب e , أرجو منك ازالتها ثم حاول مرة أخرى

  • 0
نشر
بتاريخ 11 دقائق مضت قال محمد أبو عواد:

هل يمكنك ارفاق الكود بعد التعديل؟

const sum = (num1: number, num2: number) => {
    return num1 + num2;
  };




  console.log('====================================');
  try {
    sum(5, 1);
    sum(8, 'A');
  } catch (Exception e) {
    console.log('the type you entered is NaN');
  }
  console.log('====================================');

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال أحمد ابراهيم عبد الله:

const sum = (num1: number, num2: number) => {
    return num1 + num2;
  };




  console.log('====================================');
  try {
    sum(5, 1);
    sum(8, 'A');
  } catch (Exception e) {
    console.log('the type you entered is NaN');
  }
  console.log('====================================');

 

لقد عمل عندي دون أي مشاكل, ربما لديك مشكلة في الذاكرة التخزينية الخاصة بالمتصفح, أرجو منك استخدام متصفح اخر أو يمكنك تحطيث الصفحة بالضغط على الزرين ctrl+F5

  • 0
نشر
بتاريخ 3 دقائق مضت قال محمد أبو عواد:

لقد عمل عندي دون أي مشاكل, ربما لديك مشكلة في الذاكرة التخزينية الخاصة بالمتصفح, أرجو منك استخدام متصفح اخر أو يمكنك تحطيث الصفحة بالضغط على الزرين ctrl+F5

ربما لاننى استخدم رياكت ناتيف اى موبايل وليس ويب

  • 0
نشر

يمكنك عمل هذا الحل باستخدام الجافاسكربت

const NaNError = {};

const sum = (num1:number, num2:number) => {
  if (isNaN(num1) || isNaN(num2)) throw NaNError;
  return num1 + num2;
}

try {
  sum(5, 1);
  sum(8, 'A');
}
catch (NaNError e) {
  console.log('The type you entered is NaN')
}

هنا قمنا ببساطة بتعريف متغير للخطأ بحيث إذا كان أحد الرقمين للدالة sum عبارة عن NaN ففي هذه الحالة نرمي الخطأ الذي أنشأناه
 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...