当前位置 : 主页 > 编程语言 > java >

【Java】异常和Lambda表达式

来源:互联网 收集:自由互联 发布时间:2022-09-29
文章目录 ​​前言​​ ​​一、异常​​ ​​二、Lambda表达式​​ ​​总结​​ 前言 本篇文章介绍了异常和Lambda表达式 Lambda表达式,可以避免匿名类太多,使用也方便。 异常是在


文章目录

  • ​​前言​​
  • ​​一、异常​​
  • ​​二、Lambda表达式​​
  • ​​总结​​

前言

本篇文章介绍了异常和Lambda表达式
Lambda表达式,可以避免匿名类太多,使用也方便。
异常是在程序的运行过程中所发生的异常事件,这些异常事件都属于不正常现象,他中断指令的正常执行。


一、异常

关键字:try(监控区域),catch(捕获异常)、finally(处理一些善后的工作),throw,throws(抛出异常)。
最主要的用法:

try{ //监控区域

可能发生异常的一条或者多条语句
}catch(异常名 参数名){

异常处理语句
}finally{ //无论有无异常,finally语句一定会执行的
最后异常处理语句
}

一个例子:

int a=7,b=0;
int sum;
try{
sum=a/b; //监控
}catch (ArithmeticException e)
{
//如果监控区域出现异常,则捕获异常
System.out.println("捕获"+e);//捕获异常
}finally {
System.out.println("哈哈,我运行了");//善后工作,关闭操作
}

其中finally可以省略

try{

}catch(){

}




try{

}catch(){


}catch(){


}
...
finally{//可以省略


}

当出现多个catch时一定要满足异常的范围从小到大,在上面的异常范围最小
throws语句
如果方法内生成一个异常,但无法确定如何处理此异常,如“找不到文件”等异常,必须将异常传送给调用方法,由他的调用方法来处理,这种情况下,方法应该用声明异常抛出,让异常对象可以从调用栈处向后传递,知道有相应的办法捕获它为止。(也就是我现在不处理这个异常,如果有人用这个方法,那你处理异常)

举个栗子:

public class lizi{

public void imlizi() throws ArithmeticException{

System.out.println("我是例子");
}
}

imlizi这个方法抛出了异常,所以调用这个方法的使用就需要用try…catch语句来捕获异常

throw语句
在程序运行期间可以直接使用throw手工的抛出一个异常类的实例化对象。

二、Lambda表达式

匿名内部类

public class Demolambda {
public static void main(String[] args) {
iLove love = new iLove() {
@Override
public void love() {
System.out.println("我爱你,是多么痛苦的信仰");
}
};
love.love();
}

}
interface iLove{
void love();

}

简化1

public class Demolambda {
public static void main(String[] args) {
iLove love;
love = ()-> {
System.out.println("我爱你,是多么痛苦的信仰");
};
love.love();

}

}
interface iLove{
void love();

}

简化二,去大括号

public class Demolambda {
public static void main(String[] args) {
iLove love;
love = ()-> System.out.println("我爱你,是多么痛苦的信仰");
love.love();

}

}
interface iLove{
void love();

}

有参

public class Demolambda {
public static void main(String[] args) {
iLove love;
love = (int a)-> System.out.println("我爱你,是多么痛苦的信仰"+a);
love.love(521);
}

}
interface iLove{
void love(int a);

}

有参简化1,去类型

public class Demolambda {
public static void main(String[] args) {
iLove love;
love = ( a)-> System.out.println("我爱你,是多么痛苦的信仰"+a);
love.love(521);
}

}
interface iLove{
void love(int a);

}

有参简化2,去括号

public class Demolambda {
public static void main(String[] args) {
iLove love;
love = a-> System.out.println("我爱你,是多么痛苦的信仰"+a);
love.love(521);
}

}
interface iLove{
void love(int a);

}

总结

Lambda表达式注意:

1、如果有多个参数时,括号不能去
2、参数类型要有都有,要去都去
3、方法体只有一行代码时,才可以去掉大括号


上一篇:SpringCloud-03 Netflix Ribbon学习笔记
下一篇:没有了
网友评论