Day15 常用API 异常机制

1 . Biglnteger

1.1 概述

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

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

1.2 常用方法

public BigInteger abs(): 返回此 BigInteger 的绝对值

BigInteger add(BigInteger val): 返回其值为(this+val)的

BigInteger subtract(BigIntger val): 返回其值为(this - val)

BigInteger multiply(BigIneger val): 返回其值为(this/val)的 (整数相除只保留整数部分)

BigInteger remainder(BigIneger val) : 返回其值为(this %val)

BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组。

BigInteger pow(int exponent) :返回其值为 (thisexponent) 的 BigInteger。

1.3 使用

//必须传入字符串

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

1.4 阶乘

public class BigInteger_02{
public static void main(String[] args){
   System.out.println(test(120));
System.out.println(test1(120));
System.out.println(Long.MAX_VALUE);
}
public static long test(long n ){
long result = 1 ;
for(int i = 1;i<=n;i++){
result*=i;
}
return result;
}
}
public static BigInteger test1(long n){
  BigInteger result = new BigInteger("1");
for(int i = 0;i<=n;i++){
result = result.multiply(new BigInteger(i+""));
}
return result;
}

2 Math

2.1 概述

java.lang.Math 类型一般为double型

abs 绝对值

pow(double a,double b) a的b次幂

max(double a,double b) 取最大值

min(double a, double b) 取最小值

ceil(2.001) 向上取整

floor(1.999) 向下取整

sqrt(16); 开平方

cbrt(8) 开立方

random(); 返回一个大于等于0 小于1的随机数

rint(2.5001) 2.5=2; 3.5=4;2.5001 =3

3. 异常机制

3.1 出现过的异常

1.空指针

2.下标越界

3.类型转换异常

4.栈内存溢出

3.2 概述

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

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

throw:异常源点

finally: 必须执行的语句

3.3 继承体系

 3.4 Error

系统内部错误,这类错误由系统进行处理,程序本身无需捕获处理。 
比如:OOM(内存溢出错误)、VirtualMachineError(虚拟机错误)、StackOverflowError(堆栈溢出错误)等,一般发生这种情况,JVM会选择终止程序。

3.5 Exception 

3.5.1 概述

Exception 是所有异常类的父类. 分为非EuntimeException和RuntimeException

  1. 非RuntimeException 
    指程序编译时需要捕获或处理的异常,如IOException、自定义异常等。属于checked异常。
  2. RuntimeException 
    指程序编译时不需要捕获或处理的异常,如:NullPointerException等。属于unchecked异常。一般是由程序员粗心导致的。如空指针异常、数组越界、类型转换异常等。

3.5.2 常用方法

 3.5.3 Try...catch...

try{

高风险代码

只要出错,就执行catch,try中剩余代码不再执行

如果没出错,try就可以顺利执行完成,并且catch不再执行}

}catch(异常类型 变量){

处理方案;

}

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

 

 

 3.5.4 Throws

抛出异常,该方式并不会处理理解,一种提醒机制,告诉调用人员,这里可能会有错误

如果知道如何解决 则使用try解决问题,否则就要通过 throws 抛出问题

只要你的下家提醒了你,要么拟解决,要么抛给上家

 3.5.5 Finally

finally : 必须执行的语句块,不能单独使用,必须和try 或者try...catch... 一起使用

finally 只有一种不执行的情况,那就是 System.exit(0);

 

 

 java7 新特性,自动关闭资源

try(开启资源语句;){

高风险代码;

}catch(异常类型 变量){

处理方案;

}

 3.5.6 不能有更宽泛的异常

 3.6 自定义异常类

3.6.1 需求

完成用户登陆功能

传入用户信息,校验用户名和密码是否正确,如果正确则返回该用户所有信息,反之则提示错误信息

 3.6.2 实体类

 3.6,3 异常类

 3.6.4 Controller

 3.6.5 Data

 3.6.6 Dao

 3.6.7 Service

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值