Java——异常处理(三)——自定义异常

自定义异常通常用来定义自己想要的异常抛出,例如查找商品抛出没有此商品异常等等....

自定义有两种类型:

一、定义为运行时异常(RunTimeException)

public class 异常名  extends RuntimeException{

                //自定义的变量体

        }//抛出的是运行时异常,所以不需要处理

二、定义为非运行时异常(Exception)

public class 异常名  extends Exception{

                //自定义的变量体

        }//非运行时异常,需要try....catch....语句块处理

处理自定义异常:

package com.neuedu.test;

public class TestThrowException {
	
	public void buyProduct(int id){
		if(id==1){
			// 抛出的是运行时异常,所以不需要处理
			throw new ProductAlreadyDownException("商品已经下架");
		}else{
			System.out.println("购买商品");
		}
	}
	
	public void queryProduct(int id)throws ProductNotFoundException
	{
		if(id==1){
			//  该商品不存在
			throw new ProductNotFoundException("商品不存在");
		}else if(id==2){
		//  该商品存在
			System.out.println("该商品存在");
		}
	}
	
	public void queryProduct2(int id)
	{
		if(id==1){
			//  该商品不存在
			try {
				throw new ProductNotFoundException("商品不存在");
			} catch (ProductNotFoundException e) {
				e.printStackTrace();
			}
		}else if(id==2){
		//  该商品存在
			System.out.println("该商品存在");
		}
	}
	
	public static void main(String[] args) {
//		try {
//			new TestThrowException().queryProduct(1);
//		} catch (ProductNotFoundException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		//new TestThrowException().queryProduct2(1);
		new TestThrowException().buyProduct(1);
		
	}

}

抛出自己想要的异常语句块!!

你可能感兴趣的:(java,java,android,apache)