编译Java代码时未报告的exceptionjava.io.IOException
我遇到此代码的问题:
public class gravityv1 { public static double[] calculategravity(double[] mass, int[] diameter) { double[] gravity = new double[mass.length]; for (int n = 0; n < mass.length; n++) { gravity[n] = (6.67E-11 * mass[n]) / Math.pow((diameter[n] / 2), 2); } return gravity; } public static void print(double[] gravity, double[] mass, int[] diameter, String[] planet) { System.out.println(" Planetary Data"); System.out.println("Planet Diameter(km) Mass(kg) g(m/s^2)"); System.out.println("---------------------------------------------------------------------"); for (int n = 0; n < planet.length; n++) System.out.printf("%-7s%15d%20.3f%14.2f", planet[n], diameter[n], mass[n], gravity[n]); } public static void printFile(double[] gravity) throws IOException { PrintWriter outFile = new PrintWriter(new File("gravity.txt")); for (double gravita: gravity) { outFile.println(gravita); } outFile.close(); } public static void main(String[] args) { String[] planet = { "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune" }; double[] mass = {.330E24, 4.87E24, 5.97E24, 0.642E24, 1898E24, 568E24, 86.8E24, 102E24 }; int[] diameter = { 4879, 12104, 12756, 6792, 142984, 120536, 51118, 49528 }; double[] gravity = calculategravity(mass, diameter); print(gravity, mass, diameter, planet); printFile(gravity); } }
每当我尝试编译此代码时,在“ printFile(gravity)
”处出现错误,该错误位于底部。 错误消息是:
未报告的exceptionjava.io.IOException; 必须被抓住或宣布被抛出。
我不知道该怎么办。
您需要在main
方法中围绕抛出IOException
所有方法使用try-catch块:
try { printFile(gravity); } catch (IOException ex) { // handle exception here }
包括签名后throws IOException
所有方法。
将主方法声明更改为:
public static void main(String[] args) throws IOException
在Java中,每个方法A调用另一个方法B,必须声明所有exception
哪个B可以抛出(除非它们是RuntimeException
后代或除非A.
正在try-catch块中显式捕获和处理它们。
在你的情况下A是main
,B是printFile
。
- 理解Java堆栈
- 未捕获并忽略ArrayIndexOutOfBoundsException
- 扩展java.util.logging.Logger无法正常工作
- 处理ThreadPoolExecutor的exception
- 如何循环用户输入直到输入整数?
- 默认情况下打印出命令行java应用程序中未处理的exception在哪里? 对stdout或stderr?
- java:无法重新抛出exception:未处理的exception类型exception
- 抛出exception后如何继续执行java程序?
- Jax-RS(Jersey)上下文中的WebApplicationException和WebServiceException之间的区别