1. 编译错误和运行时异常怎么区分
编译错误 一般都是语法错误
运行时错误一般都是比如数组索引指向空值 4/0 这类错误
请参考
2. InvocationTargetException属于什么异常,是运行时异常还是编译时异常,
编译错误,一般是语法上存在问题,编译过不去;
运行错误,是指程序在运行过程中出现错误,只能说是程序存在一定的边界bug;
编译错误一般是指java语法的错误,运行错误分两种一种是error还有就是Exception 有的异常是抛出但可继续执行之后的代码,有的异常是无法继续进行的代码如:
RuntimeException,ClassCastException, 那么,编译和运行时期最好的理解就是java1.5之后出现的泛型机制,在以前的版本中如果考虑不当,只会在运行时出现异常,现在加了泛型,问题会给暴露在编译时期,这样就提高了代码的安全性。
3. c++中什么是语法错误,什么是编译错误
程序的错误主要分成三种:
编译链接错误;
编译链接错误又分成编译错和链接错。
编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;
链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。
运行错误;
运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。
逻辑错误
逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。
例如:新手经常将判断相等的==写成=赋值,往往就会导致逻辑错。
你的BD(int,int); 是一句函数调用?还是一句函数声明?
4. java中异常与错误有什么区别
在Java.lang软件包中有一个java.lang.Throwable类,这个类是java中所有错误和异常的超类。
顾名思义,这个类(以及子类)的实例可以通过JVM或者java的throw语句抛出。而catch子句的参数也只能是Throwable类型(或者其子类型)。
Throwable类有两个子类,Error与 Exception。
错误与异常都是在程序编译和运行时出现的错误。不同的是,异常可以被开发人员捕捉和处理;而错误一般是系统错误,一般不需要开发人员处理(也无法处理),比如内存溢出。
Exception是java中所有异常的基类。在java中异常被分为两大类,编译时异常和运行时异常。
编译时异常是由于外在条件不满足而引发的,比如程序视图打开一个并不存在的远程Socket端口。这种异常是可预知的。编译器强制要求对编译时异常进行捕获或声明。
运行时异常往往是系统错误,比如数组下标越界等。通常我们可以不做处理,系统会把它们交给缺省的异常处理程序。有人说在运行时异常出现后,异常会被一层层向上抛直到找到处理代码,如果我们没有处理运行时异常,异常会被抛到最上层然后抛出,从而导致最上层程序或线程退出。
Error是java中所有错误的基类。错误通常是我们无法处理的,绝大多数情况下,我们不应该试图捕获错误。
5. Java编译错误和运行错误有什么区别 能否深入浅出
编译出错差不多就是语法不对,比如你写String str = 'str';这么写语法不对编译就会出错。运行出错是指语法没问题但是逻辑有问题,比如一个方法传进一个String类型的变量str,方法体中有类似于str.equals("str");的语句,但是传进的str是个null,那么那一句就相当于null.equals("str");这肯定会抛空指针异常。
用手机做例子,编译出错就是手机在生产的时候零件不对,那就肯定不能出厂。运行出错就是手机组装完出厂了,到手了你没用来打电话,直接拿来砸核桃了,那手机肯定报废(NOKIA除外)。