Java-blog-06

一.Throwable 的子类包含哪两类?简述Java Error类与Exception类的区别。

  • Error :致命异常,只能人工介入。
  • Exception:非致命异常,程序可处理。分为受检异常和非受检异常。

二.Exception又分为checked异常和unchecked异常,请分别举例说明。

  • checked异常:需要使用try-catch和throws处理
class A{
   public  static void main(String[]args){
       try(Scanner sc=new Scanner(System.in)){
           int a=sc.nextShort();
       }catch (Exception e){
           e.printStackTrace();
       }
   }
}
  • unchecked异常:编译器不会检查的异常。一般为派生于Error或者RuntimeException的异常。
public class TestArray {
 private static int[] a;
 public  static void main(String[] args){
     System.out.println(a[0]);
 }
}

三.请查阅资料,简述StackOverflowError和OutOfMemoryError两类错误的发生情形和原因。

  • StackOverflowError(栈溢出):程序使用的栈深度超过虚拟机分配给线程的栈大小。
  • OutOfMemoryError(内存溢出):Java虚拟机因对象内存不足而无法分配对象,垃圾收集器也无法提供更多内存。

四.简述异常处理的两种方式,并举例说明区别。

  • 声明抛出处理:

在这里插入图片描述
在这里插入图片描述

  • 程序捕获处理:
    在这里插入图片描述
try
	{statements}
catch(ExceptionType1 ExceptionObject)
	{Exception Handling }
catch(ExceptionType2 ExceptionObject)
	{Exception Handling }
	……
finally
	{Finally Handling }

五.选取RuntimeException类的五个子类,编写抛出并捕获上述子类异常的程序。(例如算术异常,空指针异常,类转换异常,数组越界异常等)

//算术异常
class A{
    public  static void main(String[]args){
      try{
          int a=1/0;
      }catch (Exception e){
          e.printStackTrace();
      }
    }
}
//空指针异常
class A{
    public  static void main(String[]args){
      Scanner sc=null;
      try{
          sc.nextBoolean();
      }catch (Exception e){
          e.printStackTrace();
      }
    }
}
//数组越界异常
class A{
    public  static void main(String[]args){
      int []a=new int[5];
      try{
          System.out.println(a[-1]);
      }catch (Exception e){
          e.printStackTrace();
      }
    }
}

六.根据某业务场景自定义一个异常类,并在某场景下抛出该异常对象。

七.异常中的throws声明与throw语句的区别是什么?请举例说明。

  • throw:表示方法内抛出某种异常对象。
  • throws:方法的定义上使用,表示可能抛出某种异常。

八.finally子句的作用是什么?

  • 与try-catch连用,进行善后清理工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值