java 错误码设计_Java程序设计错误

Java提供了完善的错误处理机制,在深入理解这些错误之前,先认识一下它们。

Java程序设计错误可以分为三类:语法错误、运行时错误和逻辑错误。

语法错误

在编译过程中由编译器检测出来的错误称为语法错误syntax error或编译错误compile error。

语法错误是由创建代码时的错误引起的,例如:拼错关键字,忽略了一些必要的标点符号,或者左花括号没有对应的右花括号。

这些错误通常很容易检测到,因为编译器会告诉你这些错误在哪里,以及是什么原因造成的。

观察一下上面这段代码,发现了什么问题?

运行 javac Welcome.java

D:\mapull>javac Welcome.java

Welcome.java:2: 错误: 方法声明无效; 需要返回类型

public static main(String[] args) {

^

1 个错误

我用的Win10中文系统,命令行提示为中文,不同的操作系统,不同的JDK版本,可能有不一样的提示信息。

从错误提示可以看出,第2行main方法前遗漏关键字void。

观察一下上面这段代码,发现了什么问题?

运行 javac Welcome.java

D:\mapull>javac Welcome.java

Welcome.java:3: 错误: 未结束的字符串文字

System.out.println(“Hello world);

从错误提示可以看出,第3行字符串应该加上引号。

有时候,提示会显示多个错误信息,一个错误会显示很多行的编译错误,因此,从最上面的行开始向下纠正错误。

看着有好多错误提示,其实,只需要修改一处地方:字符串加上引号

代码中是允许出现中文的,但是一定要注意,中文的分号和英文的分号是不同的。

观察一下上面这段代码,发现了什么问题?

运行 javac Welcome.java

D:\mapull>javac Welcome.java

Welcome.java:4: 错误: 非法字符: ‘\uff1b’

System.out.println(“码谱”);

^

1 个错误

很容易出现的错误,在输入完中文以后,往往在最后添加的是中文分号,导致程序出现非法字符。

如果你不知道如何纠正错误,将你的程序一个字符一个字符地仔细对照示例代码。在初期,你可能要花许多时间纠正语法错误,但是很快你会熟悉Java语法,并快速纠正语法错误。

运行时错误

运行时错误runtime error是引起程序非正常终止的错误。运行应用程序时,当环境检测到一个不可能执行的操作时,就会出现运行时错误。输入错误是典型的运行时错误。当程序等待用户输入一个值,而用户输入了一个程序不能处理的值时,就会发生输入错误。

例如:如果程序希望读入的是一个数值,而用户输入的却是一个字符串,就会导致程序出现数据类型错误。

另一个常见的运行时错误是将 0 作为除数。当整数除法中除数为 0 时可能引发这种况。

运行 javac Welcome.java,不会有任何输出,证明程序被正确编译。

运行 java Welcome

D:\mapull>javac Welcome.java

D:\mapull>java Welcome

Hello world

Exception in thread “main” java.lang.ArithmeticException: / by zero

at Welcome.main(Welcome.java:4)

运行时错误只在程序运行时报错,能正确通过编译。

逻辑错误

当程序没有按预期的方式执行时就会发生逻辑错误logic error。

这种错误发生的原因有很多种。

下面有一个除法的例子,我希望计算 3 除以 2 的结果,理想结果应该是 1.5

D:\mapull>javac Welcome.java

D:\mapull>java Welcome

1

你将得到结果1,而这是不符合预期的,结果应该是1.5。

Java中,整数相除是返回除法的整数部分,即小数部分被截掉。

要得到正确的结果,需要使用’3.0/2’,这样得到结果1.5。

通常情况下,因为编译器可以明确指出错误的位置以及出错的原因,所以语法错误是很容易发现和纠正的。

运行时错误也不难找,因为在程序异常终止时,错误的原因和位置都会显示在控制台上。

然而,查找逻辑错误就很有挑战性了。

之后,我们将学习跟踪程序 debug 以找到逻辑错误。查错能力将是一个程序员厉不厉害重要的指标。

常见错误

对于编程初学者来说,遗漏右括号、遗漏分号、遗漏字符串的引号、名称拼写错误是常见的错误。

遗漏右括号

括号用来标识程序中的块。每个左括号必须有一个右括号与之匹配。常见的错误是遗漏右括号。

为避免这个错误,任何时候输入左括号的时候就输入右括号,如下面的例子:

public class Welcome{ 立刻输入此右括号}以匹配左括号。

如果使用 Eclipse 和 IDEA 这样的IDE,在输入左括号时会自动插入一个右括号。

遗漏分号

每个语句都以一个语句结束符;结束。

通常,编程初学者会忘了在一个块的最后行语句后加上语句结束符,如下面例子所示:

遗漏引号

字符串必须放在引号中。通常,编程初学者会忘记在字符串结尾处加上一个引号,如下面例子所示:

System.out.printIn("Study in Mapull); 遗漏一个引号

如果使用 Eclipse 和 IDEA 这样的IDE,在输入左引号时会自动插入一个右引号。

名称拼写错误

Java是大小写敏感的。

编程初学者常将名称拼写错。

例如,下面的代码中main错误拼写成Main,System 错误拼写成 system

在之后,会接触到更多更复杂的错误,Java提供了完善的错误机制。

在 异常处理 部分,会有更多的处理异常的手段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值