Try...catch 循环未捕获异常

当程序运行时,当输入负数或字母时,catch 不会捕获错误。否则程序运行良好,其他任何事情都没有错误。当输入不正确的输入时,它只是捕获未捕获。


 for (int customer=0; customer<numberOfCustomers; customer++) {

                try {

                    // get amount used by customer as String, convert to double

                    GBused = Double.valueOf(Accounts[customer][USED]);


                    // compute bill based on the customer's plan selection

                    switch (Accounts[customer][SELECTION]) {

                        case "Plan-A":

                            bill = computeBill (GBused, PLAN[A][LIMIT], PLAN[A][PRICE]);

                            break;

                        case "Plan-B":

                            bill = computeBill (GBused, PLAN[B][LIMIT], PLAN[B][PRICE]);

                            break;

                        case "Plan-C":

                            bill = computeBill (GBused, PLAN[C][LIMIT], PLAN[C][PRICE]);

                            break;

                        case "Plan-D":

                            bill = computeBill (GBused, PLAN[D][LIMIT], PLAN[D][PRICE]);

                            break;

                        default:

                            bill = 0.00;

                            break;

                    }

                    // convert the bill to a String and save into the array

                    Accounts[customer][BILL] = String.valueOf(bill);                

                } // end of try               

                catch (NumberFormatException e) {

                    System.out.println ("Values for GB used must be numeric");               

                } 


茅侃侃
浏览 123回答 2
2回答

慕的地10843

没有异常被抛出。您需要检查输入处的有效值。对于字符,有类型转换并ASCII使用字符的值。

青春有我

尝试使用“(Exception e)”来捕获您可能遇到的任何可能的异常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java