Попытка получить значения из undefined в Javascript вызывает исключение TypeError. Я читаю книгу, в которой говорится, что вы можете защитить эту ошибку от оператора & &. Однако он не говорит, почему я хотел бы подавить ошибку. Может кто-нибудь объяснить, почему это было бы полезно?Подавление исключения TypeError в Javascript
ответ
Когда возникает ошибка типаError, генерируется исключение, и эта ветвь кода прекращает выполнение (если исключение не обрабатывается). Это обычно нежелательное условие.
Таким образом, можно написать код, который проверяет, действительно ли объект действителен, прежде чем пытаться получить доступ к свойствам на нем. Существует несколько способов структурирования этого типа кода в зависимости от того, что вы проверяете.
Например, если у вас есть объект, и вы хотите, чтобы прочитать свойство на него, и вы не уверены в том случае, если объект будет действительно, вы можете сделать это:
function speak(obj) {
if (obj) {
console.log(obj.greeting);
}
}
Этот вид кода будет безопасным, действительно ли obj
действителен или нет. Если вы выберете if (obj)
, то этот код будет генерировать исключение и прекратить выполнение, если obj
не был действительным объектом.
Если, с другой стороны, obj
всегда должна быть действительным объектом, и вы хотите, чтобы программа, чтобы остановить выполнение с видимым исключением, если obj
не является допустимым объект, то вы можете пойти без if
проверки и просто убедитесь, что вы достаточно проверили свою программу, чтобы убедиться, что obj
всегда действителен до его использования. В коде, который я пишу, независимо от того, проверяю ли я такие аргументы, часто зависит от того, контролирую ли я то, что было передано функции, или кто-то другой контролирует это. Если я нахожусь под контролем, то я знаю, будет ли obj
действительным или мне нужно проверить на достоверность. Если кто-то еще находится под контролем, то я не знаю, будет ли всегда оставаться obj
, поэтому может быть желательно его протестировать.
Средство, выбранное некоторыми библиотеками, должно предлагать режим «отладки», который делает незапланированные ошибки очень заметными (протоколирование) и «производственным» режимом, который пытается продолжать работу как можно лучше, не останавливая выполнение. Значительно другое поведение в режиме отладки или режиме производства также может быть источником проблем, поэтому нужно быть осторожным с этим.
- 1. Подавление исключения в журнале Wildfly
- 2. Подавление исключения в Office365 powershell
- 3. Подавление отладочного вывода исключения SetThreadName в MSVC
- 4. Остановить подавление ошибок JavaScript
- 5. Подавление событий windows.load в Javascript
- 6. Подавление ошибки javascript lint error
- 7. Подавление ORA-06512 стек Исключения информации в оракула PLSQL
- 8. TypeError при вызове настраиваемого исключения
- 9. JavaScript исключения: Uncaught TypeError: Преобразование круговой структуры JSON
- 10. написание кода для исключения TypeError в питоне
- 11. JavaScript Исключения не работает
- 12. TypeError в функции JavaScript
- 13. TypeError в Javascript консоли
- 14. JavaScript Исключения
- 15. ORIGINAL ИСКЛЮЧЕНИЯ: TypeError: не является функция
- 16. Подавление вывода
- 17. Подавление выхода в R
- 18. Javascript TypeError, не функция
- 19. Javascript TypeError: Array undefined
- 20. JavaScript uncached Typeerror
- 21. Uncaught TypeError - JavaScript
- 22. Javascript Функция TypeError
- 23. javascript TypeError: window.document.getElementById (...) null
- 24. JavaScript: TypeError: document.getElementById (...) null
- 25. JavaScript Класс Uncaught TypeError
- 26. Что вызывает исключения JavaScript в Google Картах?
- 27. Javascript queryselector.style.modify «неперехваченное TypeError»
- 28. Javascript TypeError: variable undefined
- 29. 2D Javascript Массив TypeError
- 30. Javascript TypeError с IFrame
... Вы спрашиваете, почему было бы полезно не убить вашу программу? Вам действительно нужно объяснение, почему плохо, если ваша программа терпит неудачу и завершается в несколько непредсказуемом состоянии для ваших пользователей? – meagar
Я думал, что было бы плохо попытаться получить доступ к данным, которых не существует, и я хотел бы знать, где это происходит, поэтому я могу это исправить. Мой опыт в том, что вы ломаете ошибки и делаете что-то в этом роде, а не просто пахаете через них. – user137717
Существует множество ситуаций, когда ваш код должен полагаться на ввод пользователя. Если введен неверный ввод, с проверкой данных вы можете назначить значение по умолчанию или запросить у пользователя правильную информацию. – Teemu