프로그래밍언어론연습문제
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

프로그래밍언어론연습문제에 대한 보고서 자료입니다.

목차

3장
4장
5장
6장
7장
8장
9장

본문내용

찾을 때까지의 모든 실행은 무시
- 예외 발생 가능성에 대한 명시(시스템 정의 예외, 프로그램정의 예외)
■ 시스템예외
- 프로그램의 부당한 실행으로 인하여 시스템에 의해 묵시적 발생
- 더 이상 프로그램의 실행을 지속할 수 없을 때
- 자바 시스템에 의해 자동적으로 생성
- Error와 RuntimeException 클래스로부터 확장된 예외
- IndexOutOfBoundsException :
- 배열, 스트링, 벡터 등과 같이 인덱스를 사용하는 객체에서 인덱스의 범위가 벗어날 때 발생- - ArrayStoreException : 배열의 원소에 잘못된 형의 객체를 배정하였을 때 발생
- NegativeArraySizeException : 배열의 크기를 음수로 지정하였을 때 발생-
- NullPointerException : null을 사용하여 객체를 참조할 때 발생
- SecurityException : 보안을 위반했을 때 보안 관리자(security manager)에 의해 발생
- IllegalMonitorStateException : 모니터(monitor)의 소유자가 아닌 스레드가 wait 또는 notify 메소드를 호출했을 때 발생
- 프로그래머에 의해 의도적으로 발생
- 발생한 예외에 대한 예외 처리기가 존재하는지 컴파일러에 의해 검사(예외처리기가 없으면 에러)
- Exception 클래스의 서브 클래스
11.2 예외가 처리기에 바인딩된다는 것은 무엇을 의미하는가?
- 프로그램의 예상되는 오류를 처리하기 위해 그 프로시저에 어떤 매개변수를 더 첨가하여 예상되는 오류를 만났을 때 약속된 값을 이 변수에 저장하여 변환한다. 변환 받은 프로시저가 이를 인식하고 비정상적인 일을 처리하는 과정이다. 또한 프로시저를 빠져나와 오류 처리 루틴으로 제어를 보냄으로써 정상적인 흐름을 파괴시킨다.
11.3 PL/I, Ada, C++, Java의 예외 처리기의 이름은 무엇인가?
PL/I : 시스템 제공 on condition(조건)만 사용 가능
Ada : Steelman Requirements - Ada의 예외 처리에 대한 명세
c++ : try 구성 복합문( 예외 발생) 과 다수의 catch 복합문( 예외 처리 루틴)
Java : 검사 예외(checked exception) : 예외 처리기의 존재 검사
11.4 c++에서 예외는 어떻게 명시적으로 발생되는가?
c++예외는 명시적인 throw 문에 의해 발생한다.
throw [expression];
대괄호는 식이 선택 사항을 명시하기 위해 사용된 메타 심벌이다. 피연산자가 없는 throw는 예외 처리기에서만 나타나며, 동일한 예외를 발생시키고자 할 때 사용한다.
11.5 c++에서 예외는 어떻게 처리기에 바인딩 되는가?
try {
-- 예외가 발생하기를 기대하는 코드
}
catch(formal parameter) {
-- 예외 처리기 몸체부
}
...
catch(formal parameter) {
-- 예외 처리기 몸체부
c++에서 예외처리의 바인딩은 예외 발생 코드가 포함된 복합문과 이 복합문에 있달아 예외 처리기인 복합문들이 나타났을 경우 바인딩 된다.
11.6 c++에서 임의의 예외를 처리하는 예외 처리기는 어떻게 작성되는가?
{ try {
if (index < 0 || index > 9)
throw (new_grade) ;
freq [index]++;
} //* 내부 try 문 끝
catch (int grade) { // 첨자 오류 처리기
if (grade == 100)
freq [9]++;
else
cout << \" Error -- new grade : \" << grade
<< \" is out of range \" << end1;
} // catch(int grade) 끝
} // 내부 try 문과 catch문 쌍 끝
} // while 문 끝
} //외부 try 문 끝
반복문의 제어식에서 사용된 cin 식을 사용함으로서 쉬운 처리와 첨자 범위를 벗어난 예외는 if 문으로 첨자에 관한 사용 범위를 검증하여 예외를 발생시키기보다, 첨자 연산을 중복정의해서 처리한다.
11.7 c++에서 예외 처리기가 실행을 끝냈을 때, 실행 제어는 어디로 가는가?
예외 처리기의 실행이 완료된 이후, 제어는 이 예외 처리가 속해 있는 일련의 얘외 처리기들 다음에 있는 첫 문장으로 이동 된다.
11.8 c++는 사용자의 예외 처리기에서 내장 예외를 포함하는가?
C++ 예외처리는 try, catch, throw라는 세 개의 키워드를 사용한다
try
예외 발생을 감시하려는 문장들을 try 블록 내에 둠
throw
예외( 에러) 가 try 블록 내에서 발생한다면, throw 를 사용해서 예외를 던짐
catch
catch 를 사용해서 예외를 잡아 처리함
11.9 c++의 throw 명세와 java의 throws절 간에 차이점은 무엇인가?
throw 절을 포함하지 않는 c++ 프로그램 단위는 독자에게 알 수 없는 예외를 발생할 수 있다. 그러므로 java 메소드의 throws 머리로부터 발생 할 수 있지만 처리하지 않는 예외를 알 수 있다.
11.2 c++의 예외 처리와 ada의 예외 처리를 비교하라, 여러분의 생각에 어느 족이 더 적용성이 있는가? 또한 어떤 언어가 더 신뢰성이 있는 프로그램을 작성할 수 있는가?
-ada는 예외가 발생될 때 매개변수를 예외 처리 루틴에 전달 할 수 없다.
-ada는 발생된 예외가 예외 처리 루틴을 찾는데 동적 연결의 끝가지 전파된다.
c++의 예외처리는 ada의 일부를 근간으로 하기 때문에 c++과 마찬가지로 사용자가 정의하는 예외처리를 프로그래머가 적당한 자리에 예외 처리 루틴을 기술하지 못할시 예측하지 못한 모듈에서 예외가 처리되어 디버깅 환경이 어렵게 된다.
11.3 c++의 예외 처리와 java의 예외 처리를 비교하라, 여러분의 생각에 어느 족이 더 적용성이 있는가? 또한 어떤 언어가 더 신뢰성이 있는 프로그램을 작성할 수 있는가?
- c++ 프로그램은 프로그램에서 정의되 또는 시스템에 의해서 정의된 임의의 자료형을 발생시킬 수 있다. java에서는 Throwable 또는 Throwable의 후손 클래
  • 가격6,300
  • 페이지수68페이지
  • 등록일2016.02.09
  • 저작시기2016.9
  • 파일형식한글(hwp)
  • 자료번호#994070
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니