关于Java异常的疑问
PHP中文网
PHP中文网 2017-04-18 10:49:21
0
2
602

众所周知下面的代码编译不过:

public class test{
    private static void haha(){
        throw new Exception();
    }
    public static void main(String[] args) {
        haha();
        return;
    }
}

javac test.java

未报告的异常错误Exception; 必须对其进行捕获或声明以便抛出。

但是下面的代码没有进行错误处理,却能够通过编译:

public class test{
    public static void main(String[] args) {
        String s = new String("test");
        System.out.println(s.substring(0,6));
        return;
    }
}

javac test.java
java test

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
        at java.lang.String.substring(Unknown Source)
        at test.main(test.java:4)

请问这是什么原因?

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(2)
巴扎黑

StringIndexOutOfBoundsException hérite de RuntimeException et n'a pas besoin d'être explicitement traitée.

左手右手慢动作

La première exception levée est une exception vérifiée, qui est une exception du compilateur, elle doit donc être gérée manuellement. La deuxième StringIndexOutOfBoundsException levée est une exception non vérifiée et une exception d'exécution, il n'est donc pas nécessaire de la gérer manuellement

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal