Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果可以在任何地方使用if-Else代码,为什么要使用Exception?如果我们在任何地方都不使用异常呢?_Php_Exception_Exception Handling_Divide By Zero - Fatal编程技术网

Php 如果可以在任何地方使用if-Else代码,为什么要使用Exception?如果我们在任何地方都不使用异常呢?

Php 如果可以在任何地方使用if-Else代码,为什么要使用Exception?如果我们在任何地方都不使用异常呢?,php,exception,exception-handling,divide-by-zero,Php,Exception,Exception Handling,Divide By Zero,如果可以在任何地方使用if-Else代码,为什么要使用Exception?如果我们在任何地方都不使用Exception呢 看看我是否不想在任何地方使用异常和if-Else简单条件,它可以轻松、毫无疑问地完成我的工作,那么为什么在我的代码中的任何地方都使用异常呢 例如:带异常的代码 如果我们简单地使用If-Else条件和Exit0,或者使用一些自定义消息及其代码返回,那么它仍然可以按预期工作。那么为什么要在代码中使用异常呢?如果我不使用exception,也不使用返回自定义消息的条件代码会怎么样呢

如果可以在任何地方使用if-Else代码,为什么要使用Exception?如果我们在任何地方都不使用Exception呢

看看我是否不想在任何地方使用异常和if-Else简单条件,它可以轻松、毫无疑问地完成我的工作,那么为什么在我的代码中的任何地方都使用异常呢

例如:带异常的代码


如果我们简单地使用If-Else条件和Exit0,或者使用一些自定义消息及其代码返回,那么它仍然可以按预期工作。那么为什么要在代码中使用异常呢?如果我不使用exception,也不使用返回自定义消息的条件代码会怎么样呢?

如果您询问性能开销,您真的不应该使用try/catch。try/catch用于处理超出您控制范围且不在正常程序流中的错误。如果您可以创建逻辑来处理异常,则始终使用If/else,因为其处理开销较小。
在上面的代码中,正确的方法是使用if语句,而不是try/catch

如果您询问的是性能开销,您确实不应该使用try/catch。try/catch用于处理超出您控制范围且不在正常程序流中的错误。如果您可以创建逻辑来处理异常,则始终使用If/else,因为其处理开销较小。
在上面的代码中,正确的方法是使用if语句,而不是try/catch

如果出现运行时异常,您需要对其进行处理,以便在发生错误时程序或应用程序不会停止运行。 如果您不处理它,应用程序/程序将抛出错误并停止运行。如果您是一名正在创建和分发高级软件的开发人员,您不希望发生这种情况。 如果这样的事情发生,人们或普通用户会认为它是软件中的一个bug,并为更好的软件而前进。


因此,处理异常总是更好的。如果您使用php编写一些重要的脚本或程序,我建议您处理异常。

如果出现运行时异常,您需要处理异常,以便在发生错误时程序或应用程序不会停止运行。 如果您不处理它,应用程序/程序将抛出错误并停止运行。如果您是一名正在创建和分发高级软件的开发人员,您不希望发生这种情况。 如果这样的事情发生,人们或普通用户会认为它是软件中的一个bug,并为更好的软件而前进。


因此,处理异常总是更好。如果您使用php编写一些重要的脚本或程序,我建议您处理异常。

我明白您的意思,您本质上是在问,当您可以轻松地对条件检查执行相同的操作时,为什么还要费心处理异常?在上面的示例中,您是对的,我看不出有任何使用异常处理的特殊需要,但我将为您提供一个需要使用异常处理的场景:

目标:将两个数字分开

使用if-else进行基于零的除法非常简单有效,但请注意,这是一种预期的错误情况,意味着您在它发生之前就已经知道了

目标:从文件中读取数字并将其分割

现在情况已经改变了。您仍然可以使用除法功能,但如何保证您尝试打开的文件可用?或者文件所在的磁盘仍处于连接状态?或者其他一百万件事。因此,您可以看到为什么在这种情况下使用if/else很可能会破坏您的应用程序,除非您预测并考虑所有这些不同的可能性

根据经验:


仅在异常情况下使用异常

我明白你的意思,你本质上是在问,当你可以轻松地对条件检查执行同样的操作时,为什么还要费心处理异常?在上面的示例中,您是对的,我看不出有任何使用异常处理的特殊需要,但我将为您提供一个需要使用异常处理的场景:

目标:将两个数字分开

使用if-else进行基于零的除法非常简单有效,但请注意,这是一种预期的错误情况,意味着您在它发生之前就已经知道了

目标:从文件中读取数字并将其分割

现在情况已经改变了。您仍然可以使用除法功能,但如何保证您尝试打开的文件可用?或者文件所在的磁盘仍处于连接状态?或者其他一百万件事。因此,您可以看到为什么在这种情况下使用if/else很可能会破坏您的应用程序,除非您预测并考虑所有这些不同的可能性

根据经验:


仅在异常情况下使用异常

不仅在PHP中使用异常,而且在所有语言中使用异常管理不是强制性的,但强烈建议使用

甲骨文的人有一个e xcellent post的一些主要内容是针对Java的,但完全是相同的想法

总之:

将错误处理代码与常规代码分离 将错误传播到调用堆栈 分组和区分错误类型 就我个人而言,我使用异常只是为了惯例,尤其是在大型项目中,当代码变得难以阅读时

当然,您也可以不使用if-else语句,但我喜欢它,因为它为我的代码提供了语义,将正常或预期行为与异常情况分开

此外,当需要检查的条件太多时,如果使用if-else,那么嵌套级别也会太多,使其难以阅读和理解


在您的特定示例中,如果我只想检查除法0,而没有其他程序员使用我的函数,那么我可能会使用if-else。但是如果我在一家公司,我肯定会使用异常。

不仅在PHP中使用异常,而且在所有语言中使用异常管理不是强制性的,而是强烈推荐的

甲骨文公司的人有一篇很好的文章,其中有一些主要是针对Java的,但完全是相同的想法

总之:

将错误处理代码与常规代码分离 将错误传播到调用堆栈 分组和区分错误类型 就我个人而言,我使用异常只是为了惯例,尤其是在大型项目中,当代码变得难以阅读时

当然,您也可以不使用if-else语句,但我喜欢它,因为它为我的代码提供了语义,将正常或预期行为与异常情况分开

此外,当需要检查的条件太多时,如果使用if-else,那么嵌套级别也会太多,使其难以阅读和理解


在您的特定示例中,如果我只想检查除法0,而没有其他程序员使用我的函数,那么我可能会使用if-else。但如果我在一家公司,我肯定会使用例外情况。

这里有很好的解释:@nanocv请检查编辑这里有很好的解释:@nanocv请检查编辑
<?php
function division($num1, $num2){
    //If num == 0 , throw exc
    if(!$num1){
        throw new Exception("Hell no !! This is Divide by 0 Exception");
    }
    return $num2/$num1;
}
try{
   echo "Division result is : ".division(0,22);
}catch (Exception $e){
    echo 'Exception msg : '.$e->getMessage();
}
function division($num1, $num2){
    $arr = array('error' => 0,'msg'=>'');
    //If num == 0 , throw exc
    if(!$num1){
        $arr['error'] = 1;
        $arr['msg'] = 'div by 0';
    }
    return $arr['result'] = $num2/$num1;
}

$res = division(0,22);
if($res['error']) {
    echo "errr div by 0";
}else{
    echo $res['result'];
}