Разница между операторами try-catch и if-else в PHP
Попытки и уловки используются в PHP для обработки исключений, как и в других языках, таких как C ++, Java и т. Д. Исключение - это неожиданный результат или неожиданное состояние программы, которое может обрабатываться самой программой. Чтобы справиться с такими неожиданными результатами в PHP, используются методы try and catch. Дополнительные сведения см. На странице Обработка исключений в PHP.
Точно так же PHP также выполняет условные операторы, используя if и else для обработки сценариев принятия решений. Для получения дополнительной информации посетите веб-сайтPHP | Принимать решение
Различия между try-catch и if-else в PHP:
Что такое «если» и «еще» ?
- if: он проверяет, является ли какое-либо условие «истинным» или нет, если оно истинно, то выполняет код внутри блока if.
- else: Если условие «ложно», что проверяется блоком if , тогда блок else выполняет другой код внутри него.
если (условие) {......} еще {......}
или
if(condition) {......} else if(condition) {......} else {......}
Что такое «попытаться» и «поймать» ?
- try: это раздел, в котором определяется блок кода для проверки того, генерирует ли код неожиданный результат при выполнении.
- catch: это раздел, в котором определяется другой блок кода, который выполняется, если в блоке try генерируется какой-либо неожиданный результат. Фактически этот блок кода обрабатывает исключения.
пытаться {...состояние...; ...состояние..; .....; .....; .....; } улов (Исключение) {... обработка исключения ...;}
Обработка ошибок: в основном блок if-else используется для обработки ошибок с помощью проверки условий. if-else перехватывает ошибки как условное выражение. Во многих случаях существует множество угловых случаев, которые необходимо проверять во время выполнения, но «if-else» может обрабатывать только определенные условия. В if-else условия создаются вручную на основе задачи.
<?php $g = "GeeksforGeeks" ; // Checks for a condition if // 'g'is null or not if ( $g != "" ) { echo $g ; } else { echo "This is not the string" ; } ?> |
Выход:
Компьютерщики
В случае блокировки try-catch он будет проверять сгенерированные системой ошибки или исключение во время выполнения процесса или задачи. Эти ошибки или исключения не создаются вручную. try-catch обрабатывает исключения, которые легко читаются.
<?php // Exception handling function function tryCatchException( $b , $var ) { try { echo "
Divition is " , $b / $var ; throw new Exception( 'denominator is 0' ); // If 'var' is zero then exception // is thrown } // Catch block will be executed if // any Exception has been thrown // by try block catch (Exception $e ) { echo "
Exception: " , $e ->getMessage(); // Print the Message passed // by the thrown statement } } // Exception will happened tryCatchException(6, 0); ?> |
Выход:
Ошибки во время выполнения: Предупреждение PHP: деление на ноль в /home/1027ff9c161eb6503f545005908318fc.php в строке 8 Разделение - это INF Исключение: знаменатель 0
Используйте один блок для обработки ошибок или исключения: в случае if-else у нас есть один блок else, соответствующий одному блоку if , поэтому мы должны определить каждый блок if с блоком else для обработки «ложных» условий. Также после if не может быть никаких других операторов.
<?php function rngeLaptop( $a ) { // Each 'if' with one 'else' if ( $a == "Gaming" ) { echo "Range stated from 50000rs
" ; } else if ( $a == "Education" ) { echo "Range stated from 25000rs
" ; } else if ( $a == "Graphics works" ) { echo "Range stated from 55000rs
" ; } else if ( $a == "Entertainment" ) { echo "Range stated from 18000rs
" ; } else { echo "Not listed
" ; } } rngeLaptop( "Gaming" ); rngeLaptop( "Education" ); rngeLaptop( "Movie" ); // Not listed rngeLaptop( "Entertainment" ); rngeLaptop( "Graphics works" ); ?> |
Выход:
Диапазон заявлен от 50000рс. Заявленный диапазон от 25000рс. Нет в списке Заявленный диапазон от 18000рс. Заявленный диапазон от 55000рс.
В случае try-catch нам не нужно определять каждую попытку с помощью catch . Внутри одной попытки может быть определено несколько исключений, и для перехвата исключений, генерируемых блоком try, может быть один блок catch.
<?php // Exception handling function function tryCatchException( $b , $var ) { try { // Checking 2 condition and throwing // all exceptions in one catch block if ( $var == 0) { throw new Exception( 'denominator is 0' ); } if ( $var < 0) { throw new Exception( 'denominator is a negative' ); } echo "
Divition is " , $b / $var ; } // Catch block will be executed if any // Exception has been thrown by try block catch (Exception $e ) { // Print the Message passed by // the thrown statement echo "
Exception: " , $e ->getMessage(); } } // Exception will happened tryCatchException(6, -3); tryCatchException(12, 0); tryCatchException(15, 3); ?> |
Выход:
Исключение: знаменатель - строка Исключение: знаменатель 0 Дивизион 5
Краткое обсуждение различий try-catch и if-else в PHP:
если еще | попробуй поймать | ||
---|---|---|---|
Он проверяет, является ли любое условие истинным или нет, если оно истинно, затем выполняет код внутри блока if, в противном случае выполняет блок else. | 'try' - это раздел, в котором определяется код для проверки того, генерирует ли код неожиданный результат во время выполнения, если для обработки этой ситуации выполняется какой-либо обнаруженный неожиданный результат. | ||
if-else используется для обработки различных условий с помощью проверки условий. | В случае «try-catch» система будет проверять сгенерированные системой ошибки или исключения во время выполнения процесса или задачи. | ||
Условия создаются вручную в if-else. согласно поставленной задаче. | 'try-catch' обрабатывает ошибки, сгенерированные системой, например, если массив выходит за границы, делится на ноль и т. д. | ||
В 'if-else' условия и коды внутри блоков смешиваются, так что он становится нечитаемым, если есть много блоков 'if-else'. | В «try-catch» коды для обработки исключений и того, какое исключение следует обработать, легко читаются. | В if-else у нас есть один блок else, соответствующий одному блоку if. Или нам нужно определить другое условие с помощью команды else if. | В «try-catch» нам не нужно определять каждый блок «try» с блоком «catch». |
if-else занимает меньше времени, чем try-catch. | 'try-catch' занимает больше времени, чем 'if-else'. | ||
if-else связывают данные, предоставленные программе, и условием. | «try-catch» связываются между данными с условиями и системой. |