崩溃报告的本质
其实你看到的报告,是程序根据状况输出的,就像:
内存溢出了,抛出xx异常
程序发现,在日志中写抛出了xx异常,因为xx
这些都是程序输出的,所以理论我也可以这样输出,来表示内存溢出:
你干嘛~~~
什么是异常?
异常是java设定(比如内存溢出时抛出)或者由运行程序设定抛出,如:
throw new NullPointerException();
,throw此关键字表示抛出异常,NullPointerException表示异常类型,一般抛出后java会输出一下字段:
Exception in thread "main" java.lang.NullPointerException(这后面可能会给出原因)
at org.example.Main.main(Main.java:15)
意思:异常在main方法中抛出,异常是NullPointerException(前面的ava.lang是包名(不需要知道)),抛出异常的方法是org.example(路径)中的Main类的main方法,在第15行是抛出异常(就是throw new NullPointerException();的行数)的代码
开发者可自定义抛出异常,不过在一些特殊环境,java也会自动抛出异常
常见异常类型:
NullPointerException 空指针异常,在尝试操作或更改一个不存在的对象时自动抛出
ClassCastException 类型转换异常(如将某个对象转换成非其父类时自动抛出)
NumberFormatException数字转换异常,如尝试将字符转换为数字
ClassNotFoundException 未找到类(一般你不会在日志看到这个异常抛出,因为它必须被显式处理)
FileNotFoundException 未找到文件(一般你不会在日志看到这个异常抛出,因为它必须被显式处理)
日志&&崩溃报告是什么
日志是单次存储从启动服务器到服务器关闭的所有信息
崩溃报告是将一些信息与有关内容整合,崩溃报告只会在服务器非正常关闭时生成
所以可以在找到异常后尝试百度搜索异常,一般自动抛出的异常会给出异常原因,如:Cannot invoke "java.lang.Integer.intValue()" because "a" is null(直接翻译就行)
不过也有可能是自定义异常
其实你看到的报告,是程序根据状况输出的,就像:
内存溢出了,抛出xx异常
程序发现,在日志中写抛出了xx异常,因为xx
这些都是程序输出的,所以理论我也可以这样输出,来表示内存溢出:
你干嘛~~~
什么是异常?
异常是java设定(比如内存溢出时抛出)或者由运行程序设定抛出,如:
throw new NullPointerException();
,throw此关键字表示抛出异常,NullPointerException表示异常类型,一般抛出后java会输出一下字段:
Exception in thread "main" java.lang.NullPointerException(这后面可能会给出原因)
at org.example.Main.main(Main.java:15)
意思:异常在main方法中抛出,异常是NullPointerException(前面的ava.lang是包名(不需要知道)),抛出异常的方法是org.example(路径)中的Main类的main方法,在第15行是抛出异常(就是throw new NullPointerException();的行数)的代码
开发者可自定义抛出异常,不过在一些特殊环境,java也会自动抛出异常
常见异常类型:
NullPointerException 空指针异常,在尝试操作或更改一个不存在的对象时自动抛出
ClassCastException 类型转换异常(如将某个对象转换成非其父类时自动抛出)
NumberFormatException数字转换异常,如尝试将字符转换为数字
ClassNotFoundException 未找到类(一般你不会在日志看到这个异常抛出,因为它必须被显式处理)
FileNotFoundException 未找到文件(一般你不会在日志看到这个异常抛出,因为它必须被显式处理)
日志&&崩溃报告是什么
日志是单次存储从启动服务器到服务器关闭的所有信息
崩溃报告是将一些信息与有关内容整合,崩溃报告只会在服务器非正常关闭时生成
所以可以在找到异常后尝试百度搜索异常,一般自动抛出的异常会给出异常原因,如:Cannot invoke "java.lang.Integer.intValue()" because "a" is null(直接翻译就行)
不过也有可能是自定义异常
- 内容版权许可
- CC BY-NC-SA 署名-非商业性使用-相同方式共享