当前位置:编程学习 > JAVA >>

抛出异常有什么用?

我感觉抛出跟不抛出没啥区别啊
public class ExceptionDemo {
    
    public static void main(String[] args) throws Exception
    {
    div d=new div();
      int num=d.div(4,0);
    System.out.println(num);
    }
    System.out.println("test");
   
    }
}
class div
{
int div(int a,int b)throws Exception //声明异常
{

return a/b;
}
}
======================================================================
public class ExceptionDemo {
    
    public static void main(String[] args)
    {
    div d=new div();
      int num=d.div(4,0);
    System.out.println(num);
    }
    System.out.println("test");
   
    }
}
class div
{
int div(int a,int b)
{

return a/b;
}
}
===============================================
前者是主函数和div函数都 加了throws Exception  后边的代码没有,运行结果都是
Exception in thread "main" java.lang.ArithmeticException: / by zero
at div.div(ExceptionDemo.java:34)
at ExceptionDemo.main(ExceptionDemo.java:17)
后面的输出 test都没有执行。
有什么区别吗? --------------------编程问答-------------------- 1、不至于程序彻底崩溃,影响用户体验。

2、在编写代码的时候,可能有些问题考虑的不是很周到,用来处理错误出现时带来的问题。 --------------------编程问答--------------------
引用 1 楼 u011935764 的回复:
1、不至于程序彻底崩溃,影响用户体验。

2、在编写代码的时候,可能有些问题考虑的不是很周到,用来处理错误出现时带来的问题。

我发现有没有throws Exception 结果都一样。
如果抛的是Exception的子类 就不用加throws Exception,如果抛的是Exception的话,就得加上 throws Exception。
谁能解释下 --------------------编程问答-------------------- 楼主看看这个博客吧。传送门 --------------------编程问答-------------------- 异常处理是一种编程习惯,也是一种JAVA编程的基本规范。抛出与不抛出也是为了让程序员更好的发现程序的错误并解决 --------------------编程问答-------------------- 1.处理程序错误
2.记录程序异常日志
3.释放因异常而未关闭的资源,如:file,socket,pipe等 --------------------编程问答-------------------- 一种JAVA编程的基本规范 --------------------编程问答--------------------
引用 2 楼 qq38006766 的回复:
Quote: 引用 1 楼 u011935764 的回复:

1、不至于程序彻底崩溃,影响用户体验。

2、在编写代码的时候,可能有些问题考虑的不是很周到,用来处理错误出现时带来的问题。

我发现有没有throws Exception 结果都一样。
如果抛的是Exception的子类 就不用加throws Exception,如果抛的是Exception的话,就得加上 throws Exception。
谁能解释下
throws Exception 是抛出所有的异常,包括所有的子类。 --------------------编程问答--------------------
引用 楼主 qq38006766 的回复:
我感觉抛出跟不抛出没啥区别啊
public class ExceptionDemo {
    
    public static void main(String[] args) throws Exception
    {
    div d=new div();
      int num=d.div(4,0);
    System.out.println(num);
    }
    System.out.println("test");
   
    }
}
class div
{
int div(int a,int b)throws Exception //声明异常
{

return a/b;
}
}
======================================================================
public class ExceptionDemo {
    
    public static void main(String[] args)
    {
    div d=new div();
      int num=d.div(4,0);
    System.out.println(num);
    }
    System.out.println("test");
   
    }
}
class div
{
int div(int a,int b)
{

return a/b;
}
}
===============================================
前者是主函数和div函数都 加了throws Exception  后边的代码没有,运行结果都是
Exception in thread "main" java.lang.ArithmeticException: / by zero
at div.div(ExceptionDemo.java:34)
at ExceptionDemo.main(ExceptionDemo.java:17)
后面的输出 test都没有执行。
有什么区别吗?

第一个程序 应用了throws Exception,int div(int a,int b)throws Exception //声明异常
这样调用div方法时产生的异常就不直接在这里处理,而是把异常抛出给调用它的方法,继续执行程序。 --------------------编程问答-------------------- 只是仅仅声明了异常,又没有捕捉处理,LZ期望会有什么区别呢?
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,