Ổi - Hạng ném
Lớp Throwables cung cấp các phương thức tiện ích liên quan đến giao diện Throwable.
Khai báo lớp học
Sau đây là khai báo cho com.google.common.base.Throwables lớp học -
public final class Throwables
extends Object
Phương pháp lớp học
Sr.No | Phương pháp & Mô tả |
---|---|
1 | static List<Throwable> getCausalChain(Throwable throwable) Nhận chuỗi nguyên nhân có thể ném dưới dạng danh sách. |
2 | static Throwable getRootCause(Throwable throwable) Trả về nguyên nhân sâu xa nhất của việc ném được. |
3 | static String getStackTraceAsString(Throwable throwable) Trả về một chuỗi chứa kết quả của toString (), theo sau là dấu vết ngăn xếp đệ quy, đầy đủ của tệp có thể ném. |
4 | static RuntimeException propagate(Throwable throwable) Tuyên truyền nguyên trạng có thể ném được nếu nó là một phiên bản của RuntimeException hoặc Error, hoặc nếu là phương sách cuối cùng, hãy kết thúc nó trong một RuntimeException sau đó truyền. |
5 | static <X extends Throwable> void propagateIfInstanceOf(Throwable throwable, Class<X> declaredType) Tuyên truyền có thể ném chính xác như hiện tại, nếu và chỉ khi nó là một thể hiện của statementType. |
6 | static void propagateIfPossible(Throwable throwable) Tuyên truyền có thể ném chính xác như hiện có, nếu và chỉ khi nó là một phiên bản của RuntimeException hoặc Error. |
7 | static <X extends Throwable> void propagateIfPossible(Throwable throwable, Class<X> declaredType) Tuyên truyền có thể ném chính xác như hiện tại, nếu và chỉ khi nó là một phiên bản của RuntimeException, Error hoặc statementType. |
số 8 | static <X1 extends Throwable,X2 extends Throwable>void propagateIfPossible(Throwable throwable, Class<X1> declaredType1, Class<X2> declaredType2) Tuyên truyền có thể ném chính xác như hiện tại, nếu và chỉ khi nó là một phiên bản của RuntimeException, Error, Tuyên bốType1 hoặc Tuyên bốType2. |
Phương thức được kế thừa
Lớp này kế thừa các phương thức từ lớp sau:
- java.lang.Object
Ví dụ về lớp ném
Tạo chương trình java sau bằng cách sử dụng bất kỳ trình soạn thảo nào bạn chọn C:/> Guava.
GuavaTester.java
import java.io.IOException;
import com.google.common.base.Objects;
import com.google.common.base.Throwables;
public class GuavaTester {
public static void main(String args[]) {
GuavaTester tester = new GuavaTester();
try {
tester.showcaseThrowables();
} catch (InvalidInputException e) {
//get the root cause
System.out.println(Throwables.getRootCause(e));
} catch (Exception e) {
//get the stack trace in string format
System.out.println(Throwables.getStackTraceAsString(e));
}
try {
tester.showcaseThrowables1();
} catch (Exception e) {
System.out.println(Throwables.getStackTraceAsString(e));
}
}
public void showcaseThrowables() throws InvalidInputException {
try {
sqrt(-3.0);
} catch (Throwable e) {
//check the type of exception and throw it
Throwables.propagateIfInstanceOf(e, InvalidInputException.class);
Throwables.propagate(e);
}
}
public void showcaseThrowables1() {
try {
int[] data = {1,2,3};
getValue(data, 4);
} catch (Throwable e) {
Throwables.propagateIfInstanceOf(e, IndexOutOfBoundsException.class);
Throwables.propagate(e);
}
}
public double sqrt(double input) throws InvalidInputException {
if(input < 0) throw new InvalidInputException();
return Math.sqrt(input);
}
public double getValue(int[] list, int index) throws IndexOutOfBoundsException {
return list[index];
}
public void dummyIO() throws IOException {
throw new IOException();
}
}
class InvalidInputException extends Exception {
}
Xác minh kết quả
Biên dịch lớp bằng cách sử dụng javac trình biên dịch như sau -
C:\Guava>javac GuavaTester.java
Bây giờ hãy chạy GuavaTester để xem kết quả.
C:\Guava>java GuavaTester
Xem kết quả.
InvalidInputException
java.lang.ArrayIndexOutOfBoundsException: 4
at GuavaTester.getValue(GuavaTester.java:52)
at GuavaTester.showcaseThrowables1(GuavaTester.java:38)
at GuavaTester.main(GuavaTester.java:19)