Day-5-常用API 异常机制

Day-5-常用API 异常机制,第1张

Day-5-常用API 异常机制

一  BigInteger        

1、Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。

2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供

所有 Java 的基本整数 *** 作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位 *** 作以及一些其他 *** 作。

 3使用方法

	//必须传入字符串
		BigInteger v1 = new BigInteger("1233212");
		BigDecimal v2 = new BigDecimal(20);
		BigDecimal v3 = new BigDecimal(20);
		//+
		BigDecimal result = v2.add(v3);
		System.out.println(result);
		//-
		result = v2.subtract(v3);
		System.out.println(result);
		//  /
		result = v2.divide(v3);
		System.out.println(result);
		// *
		result = v2.multiply(v3);
		System.out.println(result);
		
		// %
		result = v2.remainder(v3);
		System.out.println(result);
	

 二   Math

2.1 java.lang.Math 提供了一系列静态方法用于科学计算,他方法的参数和返回值类型一般为double型  

2.2使用方式

//绝对值
		System.out.println(Math.abs(-2));
		//向上取整,有小数,就进位
		System.out.println(Math.ceil(2.0000001));
		//返回最大值
		System.out.println(Math.max(2.1, 3.2));
		//返回最小的值
		System.out.println(Math.min(2.1, 1.2));
		//开平方
		System.out.println(Math.sqrt(64));
		//开立方
		System.out.println(Math.cbrt(27));
		//返回一个 大于等于0且小于1的随机数
		System.out.println(Math.random());
		//四舍六入五取偶,当小数大于0.5 就进1,小于0.5就舍去
		System.out.println(Math.rint(2.5000001));
		System.out.println(Math.rint(9.5));
		//N的M次幂,2的3次幂
		System.out.println(Math.pow(2, 3));

        三 异常机制 

 3.1 目前碰到过的异常有: 空指针异常 , 下标越界异常, 类型转换异常, 栈内存溢出

3.2 异常是java 种提供的一种识别及响应错误情况的一致性机制。  有效的异常处理能使程序更加健壮。

异常    其实就是错误的一种说法,在java中有一个专门模拟所有异常和错误的类,是所有类的父类

try .......catch..:处理异常,一般用于客户端

throws: 抛出异常,一般用于服务端, 

throw : 异常原点

finally: 必须执行的语句

3.3继承体系

 分为俩大类: Error  和 Exception   

Error  :系统内部出错,这类错误 由系统进行处理,程序本身 无需 捕获处理

而Exception :是所有异常的父类,分为  非RuntimeException 和RuntimeException

非RuntimeException :指程序编译时需要捕获或处理的异常

RuntimeException: 指程序编译时 不需要捕获或 处理的异常      一般由程序员粗心导致 如:空指针异常,数组越界,类型转换异常

3.4 常用方法

public String getMessage() :返回关于发生的异常的详细信息,这个消息在Throwable 类的构造函数中初始化了

public void printStackTrace() : 打印toString()   结果和 栈层次到System err 即错误输出流

3.5 Tty.....catch..

 高风险代码
                  只要出错  就执行catch ,try 中剩余代码不在执行
                如果没出错,try就可以顺利执行完成,并且 catch不再执行
  }catch(异常类型  变量){
                    处理方案        ..

 try{            
 

public static void mmain(String[] args){
			try{
				//加载对应的文件
				FileInputStream fis = new FileInputStream("12");
				System.out.println("=========");
			}catch(Exception e){
				 // 打印错误栈帧和信息,一般用于程序员排错
				e.printStackTrace();
				//获取错误信息,一般用于反馈给客户端
				String msg = e.getMessage();
				System.out.println(msg);
				System.out.println("xaxaxaxx");
			}
			// 不在终止生命周期执行
			System.out.println(2222);
		}

.

 try{
 * 			高风险代码;
 * }catch(异常类型   变量){
 * 					处理措施;
 * }catch(异常类型   变量 ){
 * 					处理措施
 * }catch(异常类型    变量){
 * 					处理措施
 * }............
 * 可以写多个catch  但是从上往下,必须是从子类到父类,或没有继承关系
 * 
 */
public class Exception_04 {
	public static void main(String[] args){
		//当try 下边可能会出现多个异常的时候,并且每个异常都对应的解决方案不同的时候
		//需要写多个catch进行不同的处理,如果解决方案一致,则只写一个exception即可
		try{
			 new FileInputStream("122");
			 String stre =null;
			 System.out.println(stre.trim());
		}catch(FileNotFoundException e){
			System.out.println("找不到指定文件");
		}catch(IOException e){
		}catch(NullPointerException e){
			System.out.println("不能为空");
		}catch(Exception e){
			System.out.println("其他异常");
		}
	}
 try{
 * 
 * }catch(异常类型1 | 异常类型2| 异常类型3){
 * }
 * 同时捕捉多个异常,并且多个异常类型直接用 |隔开,并且不能有继承关系
 * 如果有继承关系,则直接写父类即可
 * @author 田彪
 * @Date 2022年1月17日-下午7:12:39
 */
public class Exception_05 {
	public static void main(String[] args){
		try{
			new FileInputStream("121");
		}catch(FileNotFoundException | NullPointerException e){
			
		}
	}

3.6 Throws

throws  抛出异常,是一种提醒机制,告诉调用人员,这里可能有错误,使用try解决问题,  只要下家提醒了,要么解决问题,要么抛给上家

public static void main(String[] args){
		try{
			m1();
		}catch(Exception e){
			e.printStackTrace();
			//解决错误的措施
		}
		System.out.println("=========");
	}
	// throws 可以同时抛出多个异常, 用多个 逗号隔开
	 public static void m1() throws FileNotFoundException,Exception{
		 m2();
	 }
	 public static void m2() throws FileNotFoundException{
		 m3();
	 }
	 public static void m3() throws FileNotFoundException{
		 new FileInputStream("221");
	 }

3.7 Finally

  finally: 必须执行的语句块  必须和 try 或者try....catch  一起使用 不能单独使用。 只要在System.exit(0);  这一种情况下不执行

public static void main(String[] args){
		try{
			FileInputStream fis = new  FileInputStream("21");
			System.out.println(fis);
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			System.out.println("必须执行");
		}
	}

3.8 自定义 异常类!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

1 继承 一个已有的异常类, 如果是运行时异常,则继承RuntimeException  反之 继承Exception即可,一般情况下,我们写的一定四编译时异常

2 公共的无参构造

3公共的有参构造,参数似乎错误信息,然后通过super 把错误信息传递到父类

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5707595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存