在Java应用程序中,处理异常的主要方法是使用try-catch语句
public class ExceptionHandlingExample {
public static void main(String[] args) {
try {
// 可能会抛出异常的代码
int result = riskyOperation();
System.out.println("Result: " + result);
} catch (Exception e) {
// 处理异常的代码
System.err.println("An exception occurred: " + e.getMessage());
}
}
private static int riskyOperation() throws ArithmeticException {
int a = 10;
int b = 0;
return a / b; // 这将导致ArithmeticException(除以零)
}
}
public class ExceptionHandlingWithFinally {
public static void main(String[] args) {
FileInputStream fis = null;
try {
fis = new FileInputStream("example.txt");
// 读取和处理文件内容的代码
} catch (IOException e) {
System.err.println("An I/O exception occurred: " + e.getMessage());
} finally {
if (fis != null) {
try {
fis.close(); // 确保文件输入流被正确关闭
} catch (IOException e) {
System.err.println("Failed to close the file input stream: " + e.getMessage());
}
}
}
}
}
public class CustomExceptionExample {
public static void main(String[] args) {
try {
validateInput("invalid_input");
} catch (InvalidInputException e) {
System.err.println("Invalid input: " + e.getMessage());
}
}
private static void validateInput(String input) throws InvalidInputException {
if (input == null || input.isEmpty()) {
throw new InvalidInputException("Input cannot be null or empty");
}
// 其他验证逻辑
}
static class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
}
public class MultipleCatchBlocks {
public static void main(String[] args) {
try {
performDifferentOperations();
} catch (ArithmeticException e) {
System.err.println("An arithmetic exception occurred: " + e.getMessage());
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("An array index out of bounds exception occurred: " + e.getMessage());
} catch (Exception e) {
System.err.println("An unexpected exception occurred: " + e.getMessage());
}
}
private static void performDifferentOperations() {
// 可能会抛出不同类型异常的代码
}
}
public class ExceptionChaining {
public static void main(String[] args) {
try {
processData();
} catch (DataProcessingException e) {
System.err.println("Data processing failed: " + e.getMessage());
e.printStackTrace();
}
}
private static void processData() throws DataProcessingException {
try {
readData();
} catch (IOException e) {
throw new DataProcessingException("Failed to read data", e);
}
}
private static void readData() throws IOException {
// 读取数据的代码,可能会抛出IOException
}
static class DataProcessingException extends Exception {
public DataProcessingException(String message, Throwable cause) {
super(message, cause);
}
}
}
通过使用这些方法,你可以更有效地处理Java应用程序中的异常。