记住这五种常见的异常,防止面试被问

    技术2022-07-10  119

    1、java.lang.NullPointerException

    空指针异常,遇到的机率感觉是最高的;

    示例:

    public static void main(String[] args) { String text = null; System.out.println(text.toString()); }

    2、java.lang.ArrayIndexOutOfBoundsException

    数组下标越界异常,这个也是比较常见的;

    示例:

    public static void main(String[] args) { String[] text = {"1","2"}; for (int i = 0; i < 3;i++) { System.out.println(text[i]); } }

     

    3、java.lang.ClassCastException

    类强制转换异常;

    示例:

    public static void main(String[] args) { Object text = new String("aaa"); Integer num = (Integer) text; System.out.println(num); }

    4、java.lang.NumberFormatException

    数字格式异常;

    示例:

    public static void main(String[] args) { String text = "aaa"; Integer num = Integer.valueOf(text); System.out.println(num); }

    5、java.lang.IllegalAccessException

    非法访问异常,就是没有权限访问,一般是使用反射访问其私有方法或属性时出现;

    示例:

    public static void main(String[] args) { try { Class userClass = Class.forName("test.User"); // 创建新实例 Object obj = userClass.getConstructor().newInstance(); // 私有方法 Method m2 = userClass.getDeclaredMethod("getAge");//方法名 //m2.setAccessible(true);//解除私有 m2.invoke(obj); } catch (Exception e) { e.printStackTrace(); } }

     使用放射时,出现这个异常可以使用:m2.setAccessible(true);进行暴力破解。

    使用后可以正常访问。

    不会使用放射的朋友可以看我以前写的文章:

    Java反射的简单使用:https://blog.csdn.net/m_crayon/article/details/106753785

     

    再写两个偶尔会遇见的异常

    6、java.text.ParseException

    解析异常;

    示例:

    public static void main(String[] args) { SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd"); String text = "aaa"; try { Date date = format.parse(text); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } }

     

     7、java.lang.ArithmeticException

    算术异常;

    示例:

    public static void main(String[] args) { int a = 3; int b = 0; System.out.println(a / b); }

    Processed: 0.025, SQL: 9