空指针异常,遇到的机率感觉是最高的;
示例:
public static void main(String[] args) { String text = null; System.out.println(text.toString()); }数组下标越界异常,这个也是比较常见的;
示例:
public static void main(String[] args) { String[] text = {"1","2"}; for (int i = 0; i < 3;i++) { System.out.println(text[i]); } }
类强制转换异常;
示例:
public static void main(String[] args) { Object text = new String("aaa"); Integer num = (Integer) text; System.out.println(num); }数字格式异常;
示例:
public static void main(String[] args) { String text = "aaa"; Integer num = Integer.valueOf(text); System.out.println(num); }非法访问异常,就是没有权限访问,一般是使用反射访问其私有方法或属性时出现;
示例:
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
解析异常;
示例:
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(); } }
算术异常;
示例:
public static void main(String[] args) { int a = 3; int b = 0; System.out.println(a / b); }