如何处理除以0

use*_*544 2 java android try-catch

if (getOperator=="/"){
    try {
        sum = value1/value2;
    } catch (Exception e) {
        summaryTxt.setText("Invalid operation");
    }
}
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

Vla*_*nov 7

这是错误的,这是一种不好的做法.

想象一下,value1可以是Integer,它是null.然后你将捕获一个NullPointerException,但是你的代码会告诉你操作是无效的,但事实并非如此.

例外情况不适用于检查条件.最好明确检查它们:

     if (getOperator=="/"){
        if (value2 == 0) {
           summaryTxt.setText("Value2 can't be 0!");
        } else {
           sum = value1/value2;
        }
      }
Run Code Online (Sandbox Code Playgroud)