Tôi đã nhìn chằm chằm vào điều này hàng giờ và không thể nghĩ ra giải pháp; Tôi thường xử lý xác nhận loại này với regex nhưng tôi đang cố gắng sử dụng giải pháp tích hợp cho thay đổi (rõ ràng là tôi không thực hiện việc này thường xuyên):Java try/catch - hoặc "return không tìm thấy" hoặc "biến không được khởi tạo"?
private static double promptUserDecimal(){
Scanner scan = new Scanner(System.in);
System.out.println("Enter a decimal");
try{
double input2 = Double.parseDouble(scan.nextLine());
return input2;
} catch(NumberFormatException e){
System.out.println("Sorry, you provided an invalid option, please try again.");
}
}
Lỗi này là "trả lại "không được tìm thấy bởi trình biên dịch vì vậy tôi nhận được một lỗi biên dịch. Nếu tôi đặt "trả về" bên ngoài của try/catch tôi cần phải khai báo/khởi tạo "input2" mà đánh bại mục đích của hoạt động. Bất kỳ hỗ trợ nào được đánh giá cao ...
Bạn bắt ngoại lệ, in ra một tin nhắn, nhưng sau đó phương pháp vẫn tiếp tục từ khối' catch'. Trình biên dịch phàn nàn về thực tế là bạn không quay trở lại nếu khối catch được nhấn (không phải tất cả – birryree