3.0异常

Posted chxbar.cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.0异常相关的知识,希望对你有一定的参考价值。

1.异常的分类和自定义异常:(参考该博文:http://blog.csdn.net/zhangliangzi/article/details/51290026

 

2.非检查时时异常和检查时异常的区别(感谢博主:http://blog.csdn.net/swpihchj/article/details/8058129

1.2检查型异常(CheckedException)

在Java中所有不是RuntimeException派生的Exception都是检查型异常。当函数中存在抛出检查型异常的操作时该函数的函数声明中必须包含throws语句。调用改函数的函数也必须对该异常进行处理,如不进行处理则必须在调用函数上声明throws语句。

       检查型异常是JAVA首创的,在编译期对异常的处理有强制性的要求。在JDK代码中大量的异常属于检查型异常,包括IOException,SQLException等等。

1.3非检查型异常(UncheckedException)

       在Java中所有RuntimeException的派生类都是非检查型异常,与检查型异常相对抛出非检查型异常可以不在函数声明中添加throws语句,调用函数上也不需要强制处理。

       常见的NullPointException,ClassCastException是常见的非检查型异常。非检查型异常 可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。对于RuntimeException的子类最好也使用异常处理机制。虽然RuntimeException的异常可以不使用try...catch进行处理,但是如果一旦发生异常,则肯定会导致程序中断执行,所以,为了保证程序再出错后依然可以执行,在开发代码时最好使用try...catch的异常处理机制进行处理。

3.自定义异常【为了更好的知道和表达异常信息】

参考博文http://blog.csdn.net/u012110719/article/details/46391599

package 自定义异常;  
  
//或者继承RuntimeException(运行时异常)  
public class MyException extends Exception {  
  
    private static final long serialVersionUID = 1L;  
  
    // 提供无参数的构造方法  
    public MyException() {  
    }  
  
    // 提供一个有参数的构造方法  
    public MyException(String message) {  
        super(message);// 把参数传递给Throwable的带String参数的构造方法  
    }  
  
}  

 

package 自定义异常;  
  
public class CheckScore {  
  
    // 检查分数合法性的方法check() 如果定义的是运行时异常就不用抛异常了  
    public void check(int score) throws MyException {// 抛出自己的异常类  
        if (score > 120 || score < 0) {  
            // 分数不合法时抛出异常  
            throw new MyException("分数不合法,分数应该是0--120之间");// new一个自己的异常类  
        } else {  
            System.out.println("分数合法,你的分数是" + score);  
        }  
    }  
}  
package 自定义异常;  
  
import java.util.Scanner;  
  
/* 
 * 自定义的异常测试类 
 */  
public class Student {  
    public static void main(String[] args) {  
        Scanner sc = new Scanner(System.in);  
        int score = sc.nextInt();  
  
        CheckScore check = new CheckScore();  
        try {  
            check.check(score);  
        } catch (MyException e) {// 用自己的异常类来捕获异常  
            e.printStackTrace();  
        }  
    }  
  
}  

  

4.补充【自定义异常在项目中的应用】 

package serialException;

/*定义一个端口占用异常*/
public class PortInUse extends Exception {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public PortInUse() {}

	@Override
	public String toString() {
		return "端口已被占用!打开串口操作失败!";
	}
	
}

  

以上是关于3.0异常的主要内容,如果未能解决你的问题,请参考以下文章

异常和TCP通讯

片段中的Android致命异常

又抛出了一个异常:A RenderFlex 右边溢出了 3.0 像素

mvn命令异常:An error has occurred in Javadoc report generation: Unable to find javadoc command异常已解决(代码片段

mvn命令异常:An error has occurred in Javadoc report generation: Unable to find javadoc command异常已解决(代码片段

springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段