学习问题记录--异常(代码片段)

axchml axchml     2022-12-11     345

关键词:

 


1. 简述Java Error类与Exception类的区别。

  • 共同点:
    • 都继承自第一层次的Object和第二层次的Throwable类
  • 不同点:
    • Error类:不是需要程序进行捕获和处理的,Error抛出后程序停止运行。
    • Exception类:虚拟机系统根据异常的类型产生相应的异常对象,程序可以继续对抛出的异常进行捕获和相应的处理。

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

  • 声明抛出处理:

    • RunTimeException或其子类的异常,属于默认声明抛出。可以对其不做任何声名抛出或处理,交由调用该方法的地方处理(main方法交由JVM处理),编译时不会对可能产生异常地方给出提示;
    • 其他异常类必须显示声明抛出。 例如
      public static void main(String args[]) throws IOExceprion;
  • 程序捕获处理:
    通过使用try - catch - [finally]语句块,用来对可能产生异常的代码产生的异常进行捕获,并根据其异常类型进行不同的操作。


3. 选取RuntimeException类的五个子类,编写抛出并捕获上述子类异常的程序。

import java.util.EmptyStackException;
import java.util.Stack;

class A
    int v = 6;
    public int getV() 
        return v;
    


public class ExcpOp 
    public static void Arithmetic() 
        int a = 6, b = 0;
        try
            int c = a / b;
         catch (ArithmeticException ae) 
            System.out.println(ae.getClass().getName()+" has been throw");
         finally 
            System.out.println("ArithmeticEp is over!
");
        
    

    public static void NullPointer() 

        try 
            A a = null;
            a.getV();
         catch (NullPointerException npe) 
            System.out.println(npe.getClass().getName()+" has been throw");
         finally 
            System.out.println("NullPointer is over!
");
        
    

    public static void EmptyStack() 
        Stack s = new Stack();

        try
            s.push(5);
            s.pop();
            System.out.println("Pop 1");
            s.pop();
            System.out.println("Pop 2");
         catch (EmptyStackException ese) 
            System.out.println(ese.getClass().getName()+" has been throw");
         finally 
            System.out.println("EmptyStack is over!
");
        
    

    public static void IndexOutOfBounds() 
        int[] a = new int[3];
        for (int i = 0; i<3 ; i++ ) 
            a[i] = i;
        
        try
            System.out.println(a[4]);
         catch (IndexOutOfBoundsException ioe) 
            System.out.println(ioe.getClass().getName()+" has been throw");
         finally 
            System.out.println("EmptyStack is over!
");
        
    

    public static void NegativeArraySize() 
        try
            int[] a = new int[-3];
         catch (NegativeArraySizeException nase) 
            System.out.println(nase.getClass().getName()+" has been throw");
         finally 
            System.out.println("NegativeArraySize is over!
");
        
    

    public static void main(String[] args) 
        ExcpOp.Arithmetic();
        ExcpOp.EmptyStack();
        ExcpOp.IndexOutOfBounds();
        ExcpOp.NegativeArraySize();
        ExcpOp.NullPointer();
    

 

4. 仿照例7.9,自己定义一个异常类,并在某场景下抛出该异常对象。

public class MyException extends Exception
    MyException(String msg) 
        super(msg);
    

    public static void Throw(int a) throws MyException 
        if(a <= 666) 
            throw new MyException(" 输入不666 ");
        
    

    public static void main(String[] args) 
        int a = 660;
        try
            MyException.Throw(a);
         catch (MyException me) 
            me.printStackTrace();
            a = 668;
         finally 
            System.out.println("此时 a = "+a);
        
    

 



解决dockerhub仓库下载镜像网络异常问题(代码片段)

本文记录下最近在学习Docker容器技术时遇到的一些问题,以此记录下问题分析排查过程故障问题:通过dockerpull从公共仓库DockerHub下载镜像失败[[email protected]~]#dockerpullubuntu:14.04Tryingtopullrepositorydocker.io/library/ubuntu...14.04:Pullingfro... 查看详情

asp.netcore依赖注入和管道方式的异常处理及日志记录(代码片段)

...的异常捕获方式:管道捕获/服务过滤;通过本练习,将学习到如何捕获异常、处理异常跳转、记录异常信息。搭建框架????首先,创建一个WebApi项目,选择Asp.NetCoreW 查看详情

flink学习记录--入门篇(代码片段)

...日志按需要加工后倒入到存储DB中做查询报表。为什么要学习Flink,因为最近碰到一些实时计算性能问题,其次也不太理解实时计算底层 查看详情

vue学习--问题记录(代码片段)

1、Uncaught(inpromise)TypeError:Cannotreadproperty‘protocol‘ofundefined关于axios引用方法的报错在main.js中使用importaxiosfrom‘axios‘导入axios后使用Vue.use(axios)出现了该错误,判断为引入方式错误改为Vue.prototype.axios=axios后问题解决 查看详情

记录异常日志的7条规则(代码片段)

最近一直在帮忙调试一些让人头大的bug问题,这才意识到如何记录异常日志对于简化调试的重要性,我总结了几点记录异常日志的最佳实践发表在此。1、记录技术性异常而不是用户异常用户异常(如:“登录用户名已经存在&... 查看详情

kotlin学习使用之旅(代码片段)

...有了一篇了,那是刚知道kotlin的时候草(chao)来(chao)的并且学习一篇,这次是自己在项目中正式使用并且遇到的一些问题记录,供kotlin新入门的童鞋参考,避免我的弯路(当然,这里的都是其他地方会有的,因为我也是在边学边记录)难点理... 查看详情

python学习之旅--异常(代码片段)

1,异常目的:知道异常的作用和编写格式操作流程#1,异常处理的第一种形式,try..except#try:#1/0#print("try...可能出现问题的代码")#exceptException:#print("except..出现问题之后,在这里进行处理")#2,异常处理的第二种格式,try..except...f... 查看详情

异常检测(anomalydetection)(代码片段)

...,我将向大家介绍异常检测(Anomalydetection)问题。这是机器学习算法的一个常见应用。这种算法的一个有趣之处在于:它虽然主要用于非监督学习问题,但从某些角度看,它又类似于一些监督学习问题。什么是异常检测呢?为了解... 查看详情

python学习笔记(代码片段)

...配5.其它5.1.StringIOBytesIO5.2.序列化5.2.1pickle5.2.2.JSON供个人学习笔记回顾时使用.1.异常没啥说的,语法换下而已.下文只会记录一下和JS语法不同的地方:基础语法:try...except...finally...一.可以expect多个异常,例 查看详情

etl基本介绍博学谷学习记录(代码片段)

1.概念1.1Extract1、抽取OLTP的数据2、抽取日志数据3、通过接口抽取第三方数据1.2Transform1、数据清洗 丢弃一些异常数据 处理一些脏数据 处理一些重复数据2、数据的格式转换  日期:    crate_time  year month day    2022-12-... 查看详情

django后端开发学习笔记:记录一些小问题(代码片段)

目录常见问题参考零散知识点1.DRF获取参数的方式2.DateTimeField3.DRF中的action常见问题参考这里记录下以后可能会用上的东西【1】Shell脚本启动django的runserver【2】Djangorestframework自定义返回数据格式【3】djangorestframework实现单个和群... 查看详情

django后端开发学习笔记:记录一些小问题(代码片段)

目录常见问题参考零散知识点1.DRF获取参数的方式2.DateTimeField3.DRF中的action常见问题参考这里记录下以后可能会用上的东西【1】Shell脚本启动django的runserver【2】Djangorestframework自定义返回数据格式【3】djangorestframework实现单个和群... 查看详情

java学习笔记3.10.5异常处理-自定义异常(代码片段)

文章目录零、本讲学习目标一、为何要自定义异常(一)存在问题(二)解决方法二、使用自定义异常(一)语法格式(二)案例演示1、创建三角形类2、创建计算三角形面积类3、创建三角形异常类4、方法抛出自定义异常5、进... 查看详情

react错误处理和日志记录的思考与设计(代码片段)

...口异常前端异常如何上报数据?接口异常前端异常存在的问题处理上报异常和通知参考React错误处理和日志记录的思考与设计在平时的工作,js报错是比较常见的一个情景,当出现错误的时候,用户上报问题我们往往需... 查看详情

python入门基础学习记录汇率案例学习记录(代码片段)

一、汇总整理1.操作①新建python文件工程右键--new--pythonfile 2.注意问题与知识点 》变量定义:直接写变量名即可,例如定义一个字符串并赋值123:rmb_str=‘123’。特别需要注意的,python对格式的要求,等号左右要有... 查看详情

vue学习遇到的问题记录(长期)(代码片段)

一、组件滑动条组件 el-scrollbar,官方文档未找到相关介绍二、问题:1、elementUItree控件过长无法滑动树行控件外出套个divclass为treediv,设置以下style即可实现,解决来源:https://blog.csdn.net/u012138137/article/details/81196257.treedivoverfl... 查看详情

expo大作战(十七)--expo结合哨兵(sentry)进行错误异常记录(代码片段)

...demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981【之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发】相 查看详情

前端学习记录(十五)jsonbird解决跨域请求问题(代码片段)

最近在用vuecli框架搭建一个项目练习,其中一个页面需要猫眼电影的数据接口,想实现的最终效果如下:                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​... 查看详情