java exception
http://topic.csdn.net/u/20090108/22/dc7e85d9-8196-47be-a66c-83f7a6f86865.html?57688550
用户输入10个数(整型),否则抛出自定义异常,并且将此数置0,
如果总数>1000,则抛出自定义异常,并且将总和写入磁盘文件(在自定义异常中做)。
sadfsf
ExceptionTest .java
package com.javaeye.lindows.exception;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExceptionTest {
private static final int MAX = 1000;
public static void main(String[] args) throws OutOf1000Excetion {
int[] inputData = getInputData();
int sum = 0;
for(int i = 0; i < inputData.length; i++)
sum += inputData[i];
if(sum > 1000)
throw new OutOf1000Excetion(sum, "Out of 1000");
System.out.println("Sum=" + sum);
}
private static int[] getInputData() {
int size = 10;
int ret[] = new int[size];
DataInputStream dis = new DataInputStream(System.in);
String temp = null;
for (int i = 0; i < 10; i++) {
System.out.println("please enter integer[" + i + 1 + "]:");
try {
temp = dis.readLine();
if (!temp.matches("[+-]?\\d+")) {
temp = "0";
throw new NotIntegerException("Not Integer.");
}
} catch (Exception e) {
}
ret[i] = Integer.parseInt(temp);
}
return ret;
}
}
class NotIntegerException extends Exception {
public NotIntegerException() {
super();
}
public NotIntegerException(String message) {
super(message);
}
}
class OutOf1000Excetion extends Exception {
public OutOf1000Excetion(int sum, String message) {
super(message);
writeToDisk(sum);
}
private void writeToDisk(int sum)
{
DataOutputStream dos = null;
try {
dos = new DataOutputStream(new FileOutputStream("D:\\input.txt"));
dos.write(String.valueOf(sum).getBytes());
dos.flush();
dos.close();
} catch (Exception e) {
e.printStackTrace();
if(dos!=null)
try {
dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
return;
}
}
}
asdfaf