java - 如何在try和catch block 的return语句之后打印finally block 中的语句?

标签 java exception try-catch-finally

我希望finally block 中的语句在try和catch block 的return语句之后打印,但finally block 中的语句总是在此之前打印。

 1 import java.io.*;
    2 import java.util.*;
    3 public class Division
    4 {
    5     public String divideTwoNumbers(int number1,int number2)
    6     {
    7         try
    8         {
    9         int n=number1/number2;
   10         String ans="The answer is "+n+".";
   11         return ans;
   12         
   13         }
   14         catch(ArithmeticException e)
   15         {
   16             String s1="Division by zero is not possible. ";
   17              return s1;
   18         }
   19         finally
   20         {
   21             System.out.print("Thanks for using the application");
   22         }
   23     }
   24     public static void main(String[] args)
   25     {
   26         Division obj=new Division();
   27         Scanner sc=new Scanner(System.in);
   28         System.out.println("Enter the numbers");
   29         System.out.println(obj.divideTwoNumbers(sc.nextInt(),sc.nextInt()));
   30     }
   31 }

对于输入:

`15` and `0`

需要输出:

`Division by zero is not possible. Thanks for using the application.`

我得到的输出:

感谢您使用该应用程序。除零是不可能的。

最佳答案

如果您总是希望在打印方法调用结果后显示消息,请在方法调用后打印它:

System.out.println(obj.divideTwoNumbers(sc.nextInt(),sc.nextInt()));
System.out.println("Thanks for using the application");

并删除finally

关于java - 如何在try和catch block 的return语句之后打印finally block 中的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60542413/

相关文章:

java - 如何在java中的http post中发送json对象

java - 如何调整这3个线程的控制流程?

java - 没有 catch block 仍然继续执行,没有任何警告或错误

PHP 最终阻止自动加载中止

c# - 防止引发异常

java - 为什么字符串输入作为 double 会输出这个答案

java - Netbeans 中奇怪的 "illegal start of expression"错误

java - 树节点SelectListener

java - 幽灵异常 : Java exceptions on empty lines

azure - Get-AzRoleAssignment 在 Azure Runbook 中引发 Microsoft.Rest.Azure.CloudException