Cho đoạn chương trình sau:
import java.io. * ;
import java.io. * ;
class TBT {
static BufferedReader buf = new BufferedReader(new InputStreamReader(System. in ));
public static void main(String args[]) {
String m = new String();
float x;
m = buf.readLine();
try {
x = Float.parseFloat(m);
} catch(Exception e) {}
}
}
import java.io. * ;
import java.io. * ;
class TBT {
static BufferedReader buf = new BufferedReader(new InputStreamReader(System. in ));
public static void main(String args[]) {
String m = new String();
float x;
m = buf.readLine();
try {
x = Float.parseFloat(m);
} catch(Exception e) {}
}
}
import java.io. * ;
class TBT {
static BufferedReader buf = new BufferedReader(new InputStreamReader(System. in ));
public static void main(String args[]) {
String m = new String();
float x;
m = buf.readLine();
try {
x = Float.parseFloat(m);
} catch(Exception e) {}
}
}
Trả lời:
Đáp án đúng: C
Đoạn chương trình bị lỗi do luồng nhập `buf.readLine()` có thể gây ra ngoại lệ `IOException`, nhưng nó không được xử lý trong khối `try...catch`. Lỗi này có thể xảy ra nếu có vấn đề với luồng nhập, ví dụ như luồng bị đóng hoặc bị gián đoạn. Để khắc phục, cần đưa cả thao tác đọc từ luồng vào khối `try...catch`.
Các phương án khác không đúng vì:
- Biến `m` và `x` được khai báo bên trong phương thức `main` là hoàn toàn hợp lệ.
- Việc khai báo biến `m` và `x` là static không liên quan đến lỗi trong đoạn chương trình này.





