肯定是在你需要对异常进行处理的时候啊
公司主营业务:网站设计制作、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出石首免费做网站回馈大家。
举个最常用的例子,线程的异常捕获
基本上用线程大部分都会 进行异常捕获
比如在线程睡眠的时候使用下面这条语句抛出异常
Thread.currentThread().interrupt();
这时候如果直接print的话,就会打印IllegalThreadStateException异常
这时候如果你不想 打印这个异常,想写个别的,比如打印一个 HelloWord
在 catc语句块中写print("HelloWord")就行了
try{//当代码运行时候可能会发生异常的句子}catch{//处理异常的代码,让程序在异常之后执行该代码}finally{无论是否有这里面的代码都要执行 通常是进行资源清楚和关闭打开的文件等{throws 总是出现在方法的声明中,用来标明该方法可能会抛出的各种异常throw 总是出现在方法体中,用来抛出一个异常异常主要分:运行时异常(RunTimeException 他的子类直接继承它 而它本身继承Exception)非运行时异常(直接继承Exception)在处理异常时候 可以使用多重catch 捕获异常排列顺序必须是从特殊到一般 最后一个是Exception类
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()) {
String data = scanner.next();
//判空,去空格
if(data != null !(data = data.trim()).equals("")){
//是否为整数或者一个数
if(Pattern.matches("[-]?\\d+",data)){
//判断是否为一个负数
Integer num = Integer.parseInt(data);
if(num 0){
System.out.println("为负数");
}else{
long rs = factorial(num);
System.out.println("阶乘结果:" + rs);
}
}else{
System.out.println("非整数");
}
}else{
System.out.println("输入为空");
}
}
}
public static long factorial(long number) {
if (number = 1)
return 1;
else
return number * factorial(number - 1);
}
Java语言提供两种异常处理机制:捕获异常和声明抛弃异常;
1)捕获异常:在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。捕获异常是通过try-catch-finally语句实现的。语法为:
try{
...
}catch(ExceptionName1 e){
...
}catch(ExceptionName2 e){
...
}
...
}finally{
...
}
2)声明抛弃异常:当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。声明抛弃异常是在一个方法声明中的throws子句中指明的。如:
public int read() throws IOException{
...
}
其中throws IOException就是声明抛弃异常,throws后可以跟多个异常类型。