javaSE之运行时异常和编译时异常

运行时异常继承自RuntimeException;

package foundationEnhance;

public class Person {
    private int age;

    public Person(int age) {
        super();
        if(age<0){
            throw new ageException("年龄不可以为负数!");
        }
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age<0){
            throw new ageException("年龄不可以为负数!");
        }
        this.age = age;
    }
}
package foundationEnhance;

public class testPerson {
    public static void main(String[] args) {
        Person p=new Person(-1);
        p.setAge(-2);
        System.out.println(p.getAge());
    }
}
package foundationEnhance;

public class ageException extends RuntimeException{
    public ageException() {

    }

    public ageException(String message) {
        super(message);
    }
}

编译时异常继承自Exception;

看看前面的视频,关于运行时异常和编译时异常;

...未完待补充

原文地址:https://www.cnblogs.com/shijinglu2018/p/11111847.html

时间: 2024-11-03 22:44:28

javaSE之运行时异常和编译时异常的相关文章

Java之运行时异常与编译时异常区别

Java中用2种方法处理异常: 1.在发生异常的地方直接处理: 2.将异常抛给调用者,让调用者处理. Java异常可分为3种: (1)编译时异常:Java.lang.Exception (2)运行期异常:Java.lang.RuntimeException (3)错误:Java.lang.Error Java.lang.Exception和Java.lang.Error继承自Java.lang.Throwable; Java.lang.RuntimeException继承自Java.lang.E

java异常分类(运行时异常,可检查异常)

NullPointerException:是运行时异常(RuntimeException),也叫非检查异常 所以我们抛出该类异常实例时,方法声明处无需添加throws来列举该类异常的抛出,编译器在编译该类时 也忽略对该类异常抛出的检查(编译时不看他是不是在throws中被列举). 检查异常:编译时检查(需要throws)

编译时、运行时、构建时(二)

泛型(又称类型检验):这个是发生在编译期的.编译器负责检查程序中类型的正确性,然后把使用了泛型的代码翻译或者重写成可以执行在当前JVM上的非泛型代码.这个技术被称为“类型擦除“.换句话来说,编译器会擦除所有在尖括号里的类型信息,来保证和版本1.4.0或者更早版本的JRE的兼容性. List<String> myList = new ArrayList<String>(10); 编译后成为了: List myList = new ArrayList(10); 异常(Exception

编译时,运行时解释

在开发和设计的时候,我们需要考虑编译时,运行时以及构建时这三个概念.理解这几个概念可以更好地帮助你去了解一些基本的原理.下面是初学者晋级中级水平需要知道的一些问题. Q.下面的代码片段中,行A和行B所标识的代码有什么区别呢? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class ConstantFolding {     static final  int number1 = 5;     static final  int n

多态:多态指的是编译时类型变化,而运行时类型不变

多态:多态指的是编译时类型变化,而运行时类型不变. 多态分两种: ① 编译时多态:编译时动态重载: ②  运行时多态:指一个对象可以具有多个类型. 对象是客观的,人对对象的认识是主观的. 例: Animal a=new Dog():查看格式名称: Dog d=(Dog)a.声明父类来引用子类. (思考上面的格式) 1 package TomText; 2 3 public class TomText_19 { 4 5 public static void link(String a) 6 { 7

java中的编译时常量与运行时常量

常量是程序运行期间恒定不变的量,许多程序设计语言都有某种方式,向编译器告知一块数据是恒定不变的,例如C++中的const和Java中的final. 根据编译器的不同行为,常量又分为编译时常量和运行时常量,其实编译时常量肯定就是运行时常量,只是编译时常量在编译的时候就被执行计算,并带入到程序中一切可能用到它的计算式中. 以Java为例,static final int a = 1将是一个编译时常量,编译后的符号表中将找不到a,所有对a的引用都被替换成了1. 而static final int b

小谈编译时类型与运行时类型

Java引用变量有两个类型,一个是编译时类型,还有一个是运行时类型. 编译时类型是由声明该变量时使用的类型所决定,运行时类型是由该变量指向的对象类型决定 如果两种类型不一致,就会出现多态,因此就会将子类对象之间赋值给父类引用变量,称为向上转型,而不用进行类型转换.如 Animal a = new Bird(),其中引用变量 a 的编译时类型是 Animal,运行时类型是 Bird,两者不一致,因此出现多态 当使用该对象引用进行调用的时候,有这么一条规则,对象调用编译时类型的属性和运行时类型的方法

将子类对象引用赋值给超类对象 JAVA 编译时多态性

将子类对象引用赋值给超类对象 JAVA 编译时多态性(转) (2012-05-10 11:24:05) 转载▼ 标签: 杂谈 分类: 也无晴_soft 1.通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用. DerivedC c2=new DerivedC(); BaseClass a1= c2; //BaseClass 基类,DerivedC是继承自BaseClass的子类 a1.play(); //play()在BaseClass,DerivedC中均有定义,即子类覆写了该方法 分

2016-07-07: 重新编译时vc90.pdb不是创建此预编译头时使用的pdb文件

使用VS2008在一个解决方案中包含多个项目时,当设置多个项目的中间目录为同一个目录时,在增量编译时出现"重新编译时vc90.pdb不是创建此预编译头时使用的pdb文件,请重新创建预编译头问题",从而导致整个解决方案每次都必须重新全部生成. 在msdn上获得如下信息: You may receive a "PRJ0008" or "C2471" or "C1083" or "D8022" or "