----------------------------------------------------------------------------------------
class ExceptionEx1
{
public static void main(String[] args)
{
try {
try{ } catch (Exception e){}
} catch (Exception e){
//try{} catch(Exception e){} //컴파일 에러 - catch문 내에 동일한 참조변수 e중복사용 충돌.
} //end of try-catch
try {
}catch (Exception e){}
} // end of try-catch
}
----------------------------------------------------------------------------------------
class ExceptionEx2
{
public static void main(String[] args)
{
int number = 100;
int result = 0;
//try {
for (int i=0; i<10; i++){
result = number / (int)(Math.random()*10);
System.out.println(result);
}
//}catch (Exception e){ }
}
}
----------------------------------------------------------------------------------------
class ExceptionEx3
{
public static void main(String[] args)
{
int number = 100;
int result = 0;
for (int i=0; i<10; i++){
try {
result = number / (int)(Math.random()*10);
System.out.println(result);
}catch (ArithmeticException e){
System.out.println("0");
} //end of try-catch
} //end of for
} //end of main
}
----------------------------------------------------------------------------------------
class ExceptionEx4
{
public static void main(String[] args)
{
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(4);
}catch (Exception e){
System.out.println(5);
}
System.out.println(6);
}
}
----------------------------------------------------------------------------------------
class ExceptionEx5
{
public static void main(String[] args)
{
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0);
System.out.println(4); //실행되지 않는다.
}catch (Exception e){
System.out.println(5);
}
System.out.println(6);
}
}
----------------------------------------------------------------------------------------
class ExceptionEx6
{
public static void main(String[] args)
{
try {
Exception e = new Exception("고의로 발생시켰음.");
throw e;
//throw new Exception("고의로 발생시켰음.");
}catch (Exception e){
System.out.println("에러 메시지 : " + e.getMessage());
e.printStackTrace();
}
System.out.println("프로그램이 정상적으로 종료되었습니다.");
}
}
----------------------------------------------------------------------------------------
class ExceptionEx7
{
public static void main(String[] args)
{
throw new Exception();
}
}
----------------------------------------------------------------------------------------
class ExceptionEx8
{
public static void main(String[] args)
{
try {
throw new Exception();
}catch (Exception e){
System.out.println("Exception이 발생했습니다.");
}
}
}
----------------------------------------------------------------------------------------
class ExceptionEx9
{
public static void main(String[] args)
{
throw new RuntimeException();
}
}
----------------------------------------------------------------------------------------
class ExceptionEx10
{
public static void main(String[] args)
{
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0);
System.out.println(4);
}catch (Exception e){
System.out.println(5);
}
System.out.println(6);
}
}
----------------------------------------------------------------------------------------
class ExceptionEx11
{
public static void main(String[] args)
{
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0);
System.out.println(4);
}catch (ArithmeticException ae){
if (ae instanceof ArithmeticException){
System.out.println("true");
System.out.println("ArithmeticException");
}
}catch (Exception e){
System.out.println("Exception");
}
System.out.println(6);
}
}
----------------------------------------------------------------------------------------
class ExceptionEx12
{
public static void main(String[] args)
{
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0);
System.out.println(4);
}catch (ArithmeticException ae){
ae.printStackTrace();
System.out.println("에러메시지 : " + ae.getMessage());
}catch (Exception e){
System.out.println("Exception");
}
System.out.println(6);
}
}
----------------------------------------------------------------------------------------
import java.io.*;
class ExceptionEx13
{
public static void main(String[] args)
{
PrintStream ps = null;
try {
ps = new PrintStream("error.log");
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(0/0);
System.out.println(4);
}catch (Exception ae){
ae.printStackTrace(ps);
ps.println("예외메시지 : " + ae.getMessage());
}
System.out.println(6);
}
}
----------------------------------------------------------------------------------------
import java.io.*;
import java.util.*;
class ExceptionEx14
{
public static void main(String[] args)
{
FileOutputStream fos = null;
PrintStream ps = null;
try {
fos = new FileOutputStream("error.log", true);
ps = new PrintStream(fos);
System.setErr(ps);
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(0/0);
System.out.println(4);
}catch (Exception ae){
System.err.println("------------------------------------");
System.err.println("예외발생시간" + new Date());
ae.printStackTrace(System.err);
System.err.println("예외메시지 : " + ae.getMessage());
System.err.println("------------------------------------");
}
System.out.println(6);
}
}
----------------------------------------------------------------------------------------
class ExceptionEx18
{
public static void main(String[] args) throws Exception
{
method1();
}
static void method1()throws Exception {
method2();
}
static void method2() throws Exception {
throw new Exception();
}
}
----------------------------------------------------------------------------------------
class ExceptionEx19
{
public static void main(String[] args)
{
method1();
}
static void method1(){
try{
throw new Exception();
}catch (Exception e){
System.out.println("main메서드에서 예외가 처리되었습니다.");
e.printStackTrace();
}
}
}
----------------------------------------------------------------------------------------
class ExceptionEx20
{
public static void main(String[] args)
{
try{
method1();
}catch (Exception e){
System.out.println("main메서드에서 예외가 처리되었습니다.");
e.printStackTrace();
}
}
static void method1() throws Exception {
throw new Exception();
}
}
----------------------------------------------------------------------------------------
import java.io.*;
class ExceptionEx21
{
public static void main(String[] args)
{
File f = createFile(args[0]);
System.out.println(f.getName() + "파일이 성공적으로 생성되었습니다.");
} //end of main
static File createFile(String fileName){
try{
if (fileName == null || fileName.equals("")){
throw new Exception("파일이름이 유효하지 않습니다.");
}
}catch (Exception e){
fileName = "제목없음.txt";
}finally {
File f = new File(fileName);
createNewFile(f);
return f;
}
} //end of createFile
static void createNewFile(File f){
try{
f.createNewFile();
}catch (Exception e){ }
} //end of createNewFile
}
----------------------------------------------------------------------------------------
import java.io.*;
class ExceptionEx22
{
public static void main(String[] args)
{
try {
File f = createFile(args[0]);
System.out.println(f.getName() + "파일이 성공적으로 생성되었습니다.");
}catch (Exception e){
System.out.println(e.getMessage() + " 다시 입력해 주시기 바랍니다.");
}
} //end of main
static File createFile(String fileName) throws Exception{
if (fileName == null || fileName.equals("")){
throw new Exception("파일이름이 유효하지 않습니다.");
}
File f = new File(fileName);
f.createNewFile();
return f;
} //end of createFile
}
----------------------------------------------------------------------------------------
class ExceptionEx23
{
public static void main(String[] args)
{
try{
method1();
}catch (Exception e){
System.out.println("main메서드에서 예외가 처리되었습니다.");
}
}
static void method1()throws Exception{
try{
throw new Exception();
}catch (Exception e){
System.out.println("method1메서드에서 예외가 처리되었습니다.");
throw e;
}
}
}
----------------------------------------------------------------------------------------
class FinallyTest
{
public static void main(String[] args)
{
try{
startInstall(); // 프로그램 설치 준비를 한다.
fileCopy(); // 파일을 복사한다.
deleteTempFiles(); //설치에 사용된 임시파일을 삭제한다.
}catch (Exception e){
e.printStackTrace();
deleteTempFiles();
}
}
static void startInstall(){/*프로그램 설치 준비 코드*/}
static void fileCopy(){/*파일복사코드*/}
static void deleteTempFiles(){/*임시파일 삭제 코드*/}
}
----------------------------------------------------------------------------------------
class FinallyTest2
{
public static void main(String[] args)
{
try{
startInstall(); // 프로그램 설치 준비를 한다.
fileCopy(); // 파일을 복사한다.
//설치에 사용된 임시파일을 삭제한다.
}catch (Exception e){
e.printStackTrace();
}finally {
deleteTempFiles();
}
}
static void startInstall(){/*프로그램 설치 준비 코드*/}
static void fileCopy(){/*파일복사코드*/}
static void deleteTempFiles(){/*임시파일 삭제 코드*/}
}
----------------------------------------------------------------------------------------
class FinallyTest3
{
public static void main(String[] args)
{
FinallyTest3.method1();
System.out.println("method1()의 수행을 마치고 main메서드로 돌아왔습니다.");
}
static void method1(){
try{
System.out.println("method1()이 호출되었습니다.");
return;
}catch (Exception e){
e.printStackTrace();
}finally {
System.out.println("method1() 의 finally블럭이 실행되었습니다.");
}
}
}
----------------------------------------------------------------------------------------
class NewExceptionTest
{
public static void main(String[] args)
{
try {
startInstall();
copyFiles();
}catch (SpaceException e){
System.out.println("에러 메시지 : " + e.getMessage());
e.printStackTrace();
System.out.println("공간을 확보한 후에 다시 설치하시가 바랍니다.");
}catch (MemoryException me){
System.out.println("에러 메시지 : " + me.getMessage());
me.printStackTrace();
System.gc();
System.out.println("다시 설치를 시작하세요.");
}finally{
deleteFiles();
}
} //end of main
static void startInstall() throws SpaceException, MemoryException{
if (!enoughSpace()){
throw new SpaceException("설치할 공간이 부족합니다.");
}
if (!enoughMemory()){
throw new MemoryException("메모리가 부족합니다.");
}
/*설치준비에 필요한 코드*/
}
static void copyFiles(){
/*파일복사를 위한 코드*/
}
static void deleteFiles(){
/*설치를 위한 임시 파일 삭제 코드*/
}
static boolean enoughSpace(){
//
return true;
}
static boolean enoughMemory(){
//
return false;
}
} //end of main
class SpaceException extends Exception{
SpaceException(String msg){
super(msg);
}
}
class MemoryException extends Exception{
MemoryException(String msg){
super(msg);
}
}
----------------------------------------------------------------------------------------
'자기개발 > Java' 카테고리의 다른 글
자바 강의 (0) | 2012.01.22 |
---|---|
Chapter 9 java.lang 패키지 (0) | 2012.01.21 |
Chapter 7 객체지향 프로그래밍 2 (0) | 2012.01.21 |
Chapter 6 객체지향 프로그래밍 1 (0) | 2012.01.21 |
Chapter 5 배열(Array) (0) | 2012.01.21 |