EXCEPTIONS

1.找不到符号;程序包不存在

1 //此类在控制台打印HelloWorld
2 class  HelloWorld
3 {
4     public static void main(string[] args) 
5     {
6         system.out.println("Hello World!");
7     }
8 }

 

原因:string和system首字母小写

解决方法:string和system首字母大写

2.NoClassDefFoundError

 1 //[F:\JavaTraining\ElementaryClass\20170402Day01\AssignmentsCodeDay01\Student.java] 

原因:运行.class文件时文件名没有和编译java源文件后生成的类文件的文件名一样

解决方法:修改类文件名和编译后的文件名一致

3.可能尚未初始化变量var

1 //[F:\JavaTraining\ElementaryClass\20170403Day02\AssignmentsCodeDay02\VariableUsageErrorDemo.java]
2 /*
3     错误: 可能尚未初始化变量var
4     int var;
5     System.out.println("var=" + var);
6 */

原因:未给变量初始化值

4.找不到符号

1 //[F:\JavaTraining\ElementaryClass\20170403Day02\AssignmentsCodeDay02\VariableUsageErrorDemo.java]
2 {
3         int i = 5;    //定义变量i并赋初始值5
4 }
5         System.out.println("i=" + i);//打印i

原因:打印引用的变量i超出了其存在的域(int i = 5作用范围只存在{}内)

解决方法:将System.out.println("i=" + i);放入{}内或将int i = 5;放入{}外

5.int类型数据可能损失精度

1 /**
2 //[F:\JavaTraining\ElementaryClass\20170403Day02\AssignmentsCodeDay02\ IntDemoOfEzraOholiab.java]
3 {
4     byt = 200;//将200赋给byt
5     System.out.println("byt=" + byt);//打印byt
6 }
7 */

原因:200默认为int型,占4个字节,而byte型占1个字节,将占4个字节的200放入占1个字节的内存空间中会损失精度

解决方法:将右侧的初始值调整到byte类型的范围内

6.过大的整数

1 //[F:\JavaTraining\ElementaryClass\20170403Day02\AssignmentsCodeDay02\ IntDemoOfEzraOholiab.java]
2  //定义一个long型变量lo并赋初值为500亿
3 long lo = 50000000000;
4 //打印lo
5 System.out.println("lo=" + lo);

原因:出现整数时系统默认为int类型,其范围为-20亿多~20亿多,500亿超出了其范围

解决办法:在500亿后加’L’

7.double类型数据可能损失精度

1 //[F:\JavaTraining\ElementaryClass\20170403Day02\AssignmentsCodeDay02\DoubleDemoOfEzraOholiab.java]
2 //定义一个float型变量f并赋初始值为5.03
3 float f = 5.03;
4 //打印f
5 System.out.println("f=" + f);

原因:double是默认的小数类型,其占用8个字节,而float占用4个字节,double类型小数赋值给float类型小数时会损失精度。

8.5种常见运行时异常
        ①java.lang.NullPointerException
        ②java.lang.ArrayIndexOutOfBoundsException
        ③java.lang.InputMismatchException
        ④java.lang.ArithmeticException
        ⑤java.io.FileNotFoundException

转载于:https://www.cnblogs.com/EzraOholiabXue/p/EXCEPTIONS.html

### 安装方式 在Python中安装`better_exceptions`工具,可使用如下命令: ```bash pip install better_exceptions ``` 对于不同的操作系统,还需要设置`BETTER_EXCEPTIONS`环境变量: - Linux / OSX: ```bash export BETTER_EXCEPTIONS=1 ``` - Windows: ```bash setx BETTER_EXCEPTIONS 1 ``` ### 使用方法 #### 普通Python脚本 在Python脚本中,安装并设置好环境变量后,当代码出现异常时,`better_exceptions`会自动以更详细的格式输出异常信息。例如,当执行`print(a[6])`(假设`a`为`{1: 1, 2: 2, 3: 34, 4: [1, 2, 3, 45]}`)时,会输出详细的异常信息,像这样: ```plaintext Traceback (most recent call last): File "/home/feng.liu/project/PycharmProjects/ccluoshu_prod/enigma/test/te_set.py", line 26, in <module> print(a[6]) └ {1: 1, 2: 2, 3: 34, 4: [1, 2, 3, 45]} KeyError: 6 ``` #### 在Django中使用 大体按照GitHub中说明的使用即可,但有两点需要注意: - 中间件的`__init__`方法的`get_response`参数应该有`None`默认值,这是中间件的标准写法,不是所有调用中间件的对象都有这个参数传递,示例代码如下: ```python def __init__(self, get_response=None): self.get_response = get_response ``` - 在开发环境使用这个中间件时,可能会看到输出了两套错误信息,一套是`better-exc`的,一套是Django本来的,设置`DEBUG = False`即可(貌似是因为`DEBUG`为`True`的时候第二套要返回给前端) [^3]。 #### 重写Logger error方法 可以重写`Logger`的`error`方法添加`better_exceptions`来记录详细日志 [^2]。 ### 功能介绍 `better_exceptions`主要功能是在Python程序出现异常时,提供更详细、更直观的异常信息。它能展示出异常发生时相关变量的值,让开发者更清晰地定位问题所在。例如,在普通的Python异常信息中,可能只显示异常类型和简单的错误描述,而使用`better_exceptions`后,会展示出异常发生处代码行以及相关变量的具体内容,方便调试 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值