Java 处理作用域时,uantity无法解析为变量错误,使用try catch块时如何修复
我处理的是一个范围问题,它给了我一个无法解决变量错误的数量 我知道这意味着什么,但鉴于我的代码,我不知道如何修复它 我正在做一个银行账户程序,处理数量和价格,这些必须是双精度类型 我必须使用try-catch块来捕获异常,但这会导致我收到错误。我知道在使用变量之前必须声明变量,但是,在这种情况下,我不确定如何解决这个问题 这是我的密码:Java 处理作用域时,uantity无法解析为变量错误,使用try catch块时如何修复,java,exception,Java,Exception,我处理的是一个范围问题,它给了我一个无法解决变量错误的数量 我知道这意味着什么,但鉴于我的代码,我不知道如何修复它 我正在做一个银行账户程序,处理数量和价格,这些必须是双精度类型 我必须使用try-catch块来捕获异常,但这会导致我收到错误。我知道在使用变量之前必须声明变量,但是,在这种情况下,我不确定如何解决这个问题 这是我的密码: //Validate Quantity nullpointerexception try { Double quantit
//Validate Quantity
nullpointerexception
try {
Double quantity = Double.parseDouble((request.getParameter("quantity")));
} catch (Exception e) {
hasError = true;
request.setAttribute("quantityError", true);
return;
}
//Validate Price
//Added after deadline to validate this entry and remove nullpointerexception
try{
Double price = Double.parseDouble((request.getParameter("price")));
} catch (Exception e) {
hasError = true;
request.setAttribute("priceError", true);
return;
}
// Redisplay the form if we have errors
if (hasError){
doGet(request, response);
return;
}
else{
// Cool, let's add a new description
List<InventoryEntry> entries = (List<InventoryEntry>) getServletContext().getAttribute("entries");
// Get a reference to the guest book
//List<GuestBookEntry> entries = (List<GuestBookEntry>) getServletContext().getAttribute("entries");
entries.add(new InventoryEntry(name, description, price, quantity));
response.sendRedirect("BankAccounts");
}
}}
您在比试图从中访问数量的范围更小的范围内定义了数量
之前:
try {
Double quantity = /* some val */;
} catch () {...}
System.out.println(quantity); //Quantity wasn't defined earlier?
之后:
Double quantity = 0D; //default value
try {
quantity = /* some val */;
} catch () {...}
System.out.println(quantity); //Prints our value or some default
当您离开某一级别的作用域时,您的变量也会被留下
String one = "1";
{
String two = "2";
{
String three = "3";
//I can read one, two, three
}
//I can read one, two
}
//I can read one
谢谢这确实奏效了,但我现在有一个不同的问题。