本文作者:qiaoqingyi

编程闪退问题(c语言编程闪退怎么办)

qiaoqingyi 06-11 100

  1、 当你在一个路径下执行编译好的class文件出错。

  异常如下:

  E:\liwyjava 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;iarray.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[]){

  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

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

  异常如下:

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

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

  at ExceptionDemo04.main(ExceptionDemo04.java:7)

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

  public class Test

  {

  public static void main(String args[]){

编程闪退问题(c语言编程闪退怎么办)

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

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

  }

  }

  异常如下:

  D:\d代码java -ea Test

  Exception in thread "main" java.lang.Asserti

  at Test.main(Test.java:5)

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

阅读
分享