zoukankan      html  css  js  c++  java
  • Java常见异常:Exception in thread "main" java.lang.NoClassDefFoundError

    1. 在某一路径下执行编译好的class文件出错。 

      异常如下:

      E:liwy>java Test98

      Exception in thread "main" java.lang.NoClassDefFoundError: Test98

      如果出现了以上错误提示,常见问题有如下两种:1 大小写写错了, 2 路径不正确。

      Java常见异常和错误
       
       
    2. 数组错误,访问不存在的数组,数组超出绑定,代码如下:

      public class ArrayDemo

      {

      public static void main(String args[]){

      int array[] = null; //声明数组

      array = new int[3]; //为数组开辟空间,大小为3

      for(int i=0;i<array.length;i++){

      System.out.println("array["+i+"]="+i);

      }

      //访问数组没有开辟的下标,这时会报异常

      System.out.println("array[3]="+array[3]);

      }

      }

      异常如下:

      array[0]=0

      array[1]=1

      array[2]=2

      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

              at ArrayDemo.main(ArrayDemo.java:11)

      以上就是数组的索引超出绑定,就是表示数组越界

    3. 某个类没有实例化,访问类属性时,出现空指针异常

      class Person{

      String name ;  // 声明姓名属性

      int age ;   // 声明年龄属性

      public void tell(){ // 取得信息

      System.out.println("姓名:" + name + ",年龄:" + age) ;

      }

      };

      public class ClassDemo03{

      public static void main(String args[]){

      Person per = null ;  // 声明对象

      //per = new Person() ; // 实例化对象

      per.name = "张三" ;  // 为姓名赋值

      per.age = 30 ;   // 为年龄赋值

      per.tell() ;   // 调用方法,打印信息

      }

      };

      异常如下:

      Exception in thread "main" java.lang.NullPointerException

              at ClassDemo03.main(ClassDemo03.java:12)

     

     

    4. 错误的多态,出现异常

    class A{     // 定义类A

    public void fun1(){  // 定义fun1()方法

    System.out.println("A --> public void fun1(){}") ;

    }

    public void fun2(){

    this.fun1() ;  // 调用fun1()方法

    }

    };

    class B extends A{

    public void fun1(){  // 此方法被子类覆写了

    System.out.println("B --> public void fun1(){}") ;

    }

    public void fun3(){

    System.out.println("B --> public void fun3(){}") ;

    }

    };

    public class PolDemo03{

    public static void main(String asrgs[]){

    A a = new A() ;   // 实例化了一个父类对象

    B b = (B)a ;  // 发生了向下转型关系

    b.fun1() ;

    b.fun2() ;

    b.fun3() ;

    }

    };

    异常如下:

    Exception in thread "main" java.lang.ClassCastException: A

            at PolDemo03.main(PolDemo03.java:20)

    5、两个数字相除,被除数为0,出现异常

     

    public class ExceptionDemo01{

    public static void main(String args[]){

    System.out.println("********** 计算开始 ***********") ;

    int i = 10 ;  // 定义整型变量

    int j = 0 ;   // 定义整型变量

    int temp = i / j ; // 此处产生了异常

    System.out.println("两个数字相除的结果:" + temp) ;

    System.out.println("********** 计算结束 ***********") ;

    }

    };

    异常如下:

    ********** 计算开始 ***********

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

            at ExceptionDemo01.main(ExceptionDemo01.java:6)

    6、两个数字相除,输入两个参数,分别为字母a 和b,出现异常,数字格式化出问题

    public class ExceptionDemo04{

    public static void www.gzlij.com main(String args[]){

    1. System.out.println("********** 计算开始 ***********") ;

      int i = 0 ;  // 定义整型变量

      int j = 0 ;   // 定义整型变量

      try{

      String str1 = args[0] ;  // 接收第一个参数

      String str2 = args[1] ;  // 接收第二个参数

      i = Integer.parseInt(str1) ; // 将第一个参数由字符串变为整型

      j = Integer.parseInt(str2) ; // 将第二个参数由字符串变为整型

      int temp = i / j ; // 此处产生了异常

      System.out.println("两个数字相除的结果:" + temp) ;

      System.out.println("----------------------------") ;

      }catch(ArithmeticException e){ // 捕获算术异常

      System.out.println("出现异常了:" + e) ;

      }

      System.out.println("********** 计算结束 ***********") ;

      }

      };

      异常如下:

      ********** 计算开始 ***********

      Exception in thread "main" java.lang.NumberFormatException: For input string: "a"

              at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

              at java.lang.Integer.parseInt(Integer.java:447)

              at java.lang.Integer.parseInt(Integer.java:497)

              at ExceptionDemo04.main(ExceptionDemo04.jav

    2. 7、两个数字相除,输入两个参数,如果两个参数什么也不输入,出现异常,数组超出绑定。

      异常如下:

      ********** 计算开始 ***********

      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

              at ExceptionDemo04.main(ExceptionDemo04.java:7)

    3. 7、assert断言的使用,当断言结果不对出现异常。

      public class Test

      {

      public static void main(String args[]){

      int i[] = {1,2,3};   // 数组长度为3

      assert i.length==0;  // 此处断言数组长度为0

      }

      }

      异常如下:

      D:d代码>java -ea Test

      Exception in thread "main" java.lang.AssertionError

              at Test.main(Test.java:5)

      l 断言需要在运行时需要加上“-ea”,如上java –ea 类名。

  • 相关阅读:
    MySQL初步
    学会编写Android Studio插件 别停留在用的程度了
    IDEA创建Java项目并配置servlet
    nginx 安装
    推荐博主
    ssh调试及指定私钥
    程序员接私活必备的 10 个开源项目
    springboot项目搭建java项目后台框架
    JAVA程序员常用网站/工具集合
    linux安装JDK教程JAVA相关
  • 原文地址:https://www.cnblogs.com/cristin/p/7650767.html
Copyright © 2011-2022 走看看