Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Π‘Π΅Π· Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ

πŸŽ‰πŸ’–βœ¨ БообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅!

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ процСсс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Tagged с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈ, WebDev, JavaScript.

Π― Π΄Π°Π²Π½ΠΎ Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ красными ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π΄ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ смайликами 😍 ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹! Они ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΈ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ интСрСсная Ρ€Π°Π±ΠΎΡ‚Π° πŸ‘©β€ πŸ’»

ЧСстно говоря, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. Как я это сдСлал? Π― создал структурированный процСсс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ πŸ› Если Π²Ρ‹ чувствуСтС сСбя ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° ваш ΠΊΠΎΠ΄ бросаСт сообщСниС ΠΎΠ± ошибкС, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΏΠ°Π½ΠΈΠΊΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° тСст Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚, Ρ‚ΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ этот двухэтапный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ поиску ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ошибок.

1. πŸ”Ž Найти Ρ‚ΠΎΡ‡Π½ΡƒΡŽ строку, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ

Иногда Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, просто ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² сообщСниС ΠΎΠ± ошибкС, ΠΈΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠΎΠΏΠ°Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π³Π»ΡƒΠ±ΠΆΠ΅ (Π²Ρ‚ΠΎΡ€ΠΎΠΉ шаг ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с этим).

НапримСр:

var example = new Example()
Uncaught ReferenceError: Example is not defined
    at :1:15

Π­Ρ‚ΠΎ сообщСниС ΠΎΠ± ошибкС Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ошибка Π² строкС 1. Когда Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС, ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΡŒΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ всю ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ это, ΠΏΠΎΠΊΠ° Π½Π΅ смоТСтС с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ взгляда Π½Π° поиски ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:

  • Π’ΠΈΠΏ ошибки
  • Вочная линия, создавая ΠΎΡˆΠΈΠ±ΠΊΡƒ

Π•ΡΡ‚ΡŒ другая полСзная информация Π² сообщСниях ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π½ΠΎ этого достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅ΡΡŒ ΠΊ источнику ошибки, Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ ΡˆΠ°Π³Ρƒ 2.

2. πŸ‘€ ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ происходит Π² ΠΊΠΎΠ΄Π΅

Π£ всСх нас Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ ΠΊΠΎΠ΄Π΅, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ этапС протСстируСтся эти прСдполоТСния, видя, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ происходит!

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ части ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит, ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ это с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ мнСнию, происходит. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ потрСбуСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свою ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ модСль Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄.

НапримСр, этот ΠΊΠΎΠ΄ Π² настоящСС врСмя Π½Π°Ρ€ΡƒΡˆΠ΅Π½, ΠΈ сообщСниС ΠΎΠ± ошибкС Π½Π΅ выбрасываСтся:

var fizzbuzz = function(num) {
    if (num % 3 == 0) {
        return 'fizz';
    } else if (num % 5 == 0) {
        return 'buzz';
    } else if (num % 15 == 0) {
      return 'fizzbuzz';
    } else {
      return num
    }
}

Ѐункция Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Fizzbuzz Когда я ΠΏΡ€ΠΎΡ…ΠΎΠΆΡƒ Π² число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дСлится Π½Π° 15. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ сообщСния ΠΎΠ± ошибкС, я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Консоль.log Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит Π² ΠΊΠΎΠ΄Π΅

Π’ΠΎΡ‚ ΠΊΠΎΠ΄ снова, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Консоль.log заявлСния:

var fizzbuzz = function(num) {
    if (num % 3 == 0) {
        console.log(num, 'is divisible by 3');
        return 'fizz';
    } else if (num % 5 == 0) {
        console.log(num, 'is divisible by 5');
        return 'buzz';
    } else if (num % 15 == 0) {
      console.log(num, 'is divisible by 15');
      return 'fizzbuzz';
    } else {
      console.log(num, 'is not divisible by 3 or 5');
      return num
    }
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽ 15, я Π²ΠΈΠΆΡƒ этот Π²Ρ‹Π²ΠΎΠ΄:

fizzbuzz(15);
15 "is divisible by 3"
"fizz"

Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ число, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСлятся Π½Π° 15, дСлится ΠΊΠ°ΠΊ Π½Π° 3, Ρ‚Π°ΠΊ ΠΈ 5, ΠΊΠΎΠ΄ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ½Π°Ρ‡Π΅, Ссли условиС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ я знаю, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок условных ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ.

Помимо рСгистрации ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ части ΠΊΠΎΠ΄Π°. НапримСр:

var fizzbuzz = function(num) {
    console.log('remainder of dividing by 3:', num % 3);
    if (num % 3 == 0) {
        return 'fizz';
    } else if (num % 5 == 0) {
        return 'buzz';
    } else if (num % 15 == 0) {
      return 'fizzbuzz';
    } else {
      return num
    }
}

Π­Ρ‚ΠΎ Консоль.log ΠŸΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ условныС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ части ΠΊΠΎΠ΄Π° ΠΈ посмотритС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π²Π°ΠΌ.

Π’Ρ‹Π²ΠΎΠ΄

Π’Π°ΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ измСнСния ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π΄ΠΎΠ³Π°Π΄ΠΊΠΎΠ², ΠΈ вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот двухэтапный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для расслСдования ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Иногда Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько ошибок Π² ΠΊΠΎΠ΄Π΅, поэтому Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ этот процСсс, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π΅ΡˆΠ΅Π½Ρ‹!

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: “https://dev.to/sophg/error-messages-are-great-4nhb”