• 异常


                                            异常

         在软件开发 过程中,程序中出现错误是不可避免的,程序中的错误按照不同性质,可分为三类:

      1.语法错,如标志服未标明,表达式中运算符和操作数类型不兼容,括号不匹配,语句末尾缺少分号。。。。

    2语义错:如输入格式错,除数为0,给变量赋值超出允许范围等

    3逻辑错,编译运行都通过后,但是结果和预期结果不同

    异常的继承体系

    Throwable: 它是所有错误与异常的超类(祖宗类)

    他有许多子类,可根据需要调用

    异常处理的两种方式

    1try ,catch

    2.throws

    public class yunxingyic {
    /*
     * 异常:编译时期异常:只要调用了抛出异常的方法没有处理,就会编译失败
     * 如果出现编译时期异常(try   throws)
     * 运行时期异常:方法内部抛出异常是运行异常 new xxxexception
     * 如果是运行时期异常,方法声明不需要throws,调用者不需要处理
     * 一旦发生,不要处理,请你修改源代码,没有执行的意义
     * runtimeexception及其他子类
     * */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            double arrew=getarea(0);
    
        }
        //定义一个方法,计算圆的面积
        
        public static double getarea(double r){
            if(r<=0){
                throw new RuntimeException("半径不符合要求");
            }
            return Math.PI*r*r;
        }
    
    }

    还有,当父类有异常方法,在子类继承时,要注意以下几点

    /*
     * 子类继承父类有异常的方法时
     * 1可以选择不抛,如果选择抛出,异常类不能超过父类的异常
     * 可以是和父类一样的异常,可以是父类异常的子类
     * 2假如父类方法中没有抛异常,子类重写这个方法也不可以抛异常
     * 3假如父类中没有抛异常,但是子类中重写这个方法时,在方法中调用了抛出异常方法,
     * 那只能用trycatch处理
     * */
    class fu{
        public void method()throws NullPointerException{}
    }
    class zi extends fu{
        public void method(){
            try {
                me();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

                                                                自定义异常

    public class fushuException extends RuntimeException{
        public fushuException(String s){
            super(s);
        }
        public fushuException(){}
    
    }
    public static void main(String[] args) {
            // TODO Auto-generated method stub
            //定义一个计算平均数的方法
            
        }
        public static double avgnum(double...b){
            double result=0;
            double sum=0;
            for(int i=0;i<b.length;i++){
                if(b[i]<0){
                    throw new fushuException("不能穿负数");
                }
                sum+=b[i];
            }
            return sum/b.length;
        }
  • 相关阅读:
    pyhon简单比较文本相似度的方法
    MongoDB数据的导入、导出、备份与恢复
    django实现注册、登录小系统
    nginx+uwsgi部署django的简单介绍
    python操作Excel的几种方式
    Python的Pexpect的简单使用
    JVM之类加载
    Java中的绑定
    JVM之GC
    JVM之内存管理
  • 原文地址:https://www.cnblogs.com/jingyukeng/p/8885705.html
Copyright © 2020-2023  润新知