zoukankan      html  css  js  c++  java
  • java小知识点5

    异常处理的任务就是将控制权从错误产生的地方转移到能够处理这种情况的异常处理器

    异常的层次结构:

    Error:系统错误,资源耗尽等严重错误(未检查)

    Exception:

    • Runtime Exception:程序错误(未检查)
    • 其他异常:程序本身没错误,其他错误导致的异常(IO等等)(已检查)

    编译器将检查是否为所有已检查异常提供了处理器

    一个方法必须声明所有可能抛出的已检查异常,而对于未检查异常,要么是不可控制的(Error),要么是应该尽力避免的(Runtime Exception)

    子类方法抛出的已检查异常,不能比父类的多,也不能比父类的更加通用。

    通常应该捕获那些已知如何处理的异常,而将那些不知道应该如何处理的异常继续传递。

    使用异常处理的技巧:

    • 异常处理不能代替简单的测试,只在异常情况下使用异常机制
    • 不要过分的细化异常,不要一句代码一个try
    • 利用异常层次结构,寻找更加适合的子类
    • 不要压制异常
    • 在检测错误时,苛刻总比放任好
    • 不要羞于传递异常

    assert 条件;

    assert 条件: 表达式;

    启用或者禁用断言,不需要重新编译程序。断言启用禁用是类加载器的功能

    调试技巧:

    • 使用System.out或是log打印变量
    • 在每个类中放置一个main方法,进行单元测试
    • JUnit单元测试
    • 日志代理
    • Throwable.printStackTrace
    • 一般来说,堆栈显示在System.err
    • 观察类加载过程,可以使用-verbose参数
    • -Xlint:代码检查
    • jps
  • 相关阅读:
    MongoDB 基础学习
    在 PostgreSQL 中使用码农很忙 IP 地址数据库
    在 MySQL 中使用码农很忙 IP 地址数据库
    编译opencv和opencv_contrib
    修改本次提交日志
    clone报告超过限制
    修改gitolite管理员
    libevent简介[翻译]11 连接监听:接收一个TCP连接
    libevent简介[翻译]11 Evbuffers:缓冲IO的功能函数
    Windows查看TCP连接数
  • 原文地址:https://www.cnblogs.com/zcy-backend/p/6858586.html
Copyright © 2011-2022 走看看