일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 노드js
- 소켓
- 파헤쳐보자
- Knowledge Graph
- Groovy
- 스크럼
- 개발자
- 스크럼 마스터
- node.js
- 지식 그래프
- Router
- RDF
- ngrinder
- 노드
- 특징
- nodejs
- 예제
- benchmark
- java
- scrum
- C++
- socket.io
- 이벤트 루프
- node
- Python
- express
- 스레드
- 자바
- Stream
- Django
- Today
- Total
라봉이의 개발 블로그
1.7 예외의 발생과 catch 블럭 instanceof 연산자로 catch 블록의 () 안의 클래스와 비교해서 맞는 catch 블록의 {} 코드들을 실행함. 예외가 발생했을 때 생성되는 예외클래스의 인스턴스에는 발생한 예외에 대한 정보가 담겨져 있으며 다음 함수로 확인이 가능하다. printStackTrace() - 예외발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메세지를 화면에 출력 getMessage() - 발생한 예외클래스의 인스턴스에 저장된 메세지를 읽을 수 있다. public class Main { public static void main(String[] args) { PrintStream ps = null; try { ps = new PrintStream("error.log"); S..
1. 예외처리 1.1 프로그램 오류 프로그램 오류는 컴파일 에러와 런타임 에러가 있는데 그 중 런타임 에러는 에러와 예외, 2가지 종류가 있다.에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 1.2 예외처리의 정의와 목적 프로그램 실행도중에 발생하는 에러는 발생하면 복구할 수 없는 심각한 오류지만, 예외는 이에 대한 처리를 미리하면 프로그램의 비정상 종료를 막을 수 있다. 1.3 예외처리구문 try-catch 예외를 처리하기 위한 구문은 다음과 같다. try { // 예외가 발생할 가능성이 있는 문장들을 넣는다. } catch (Exception1 e1) { // Exception1이 발생했을 경우, 이를 처리하기 위한 문장 넣는다..
객체지향은 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 7. 인터페이스 7.1 인터페이스란? 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 추상클래스를 '미완성 설계도'라고 한다면 인터페이스는 밑그림만 그려져 있는 '기본 설계도'라고 할 수 있다. 7.2 인터페이스의 작성 인터페이스를 작성하는 것은 클래스와 같지만, 다만 키워드로 class 대신 interface를 사용하는 것만 다르다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수 목록) } 일반적인 클래스와 달리 인터페이스의 ..
객체지향은 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 5.다형성 5.1 다형성이란? 객체지향개념에서의 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. => 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다. 5.2 참조변수의 형변환 서로 상속관계에 있는 클래스 사이에서만 가능하다. 자손타입 -> 조상타입(업캐스팅): 형변환 생략가능자손타입
1. void 포인터 c, c++ 언어에서 generic 포인터라고도 알려진 void 포인터는 굉장히 특별한 타입이다. 그 어떤 타입이든 객체든 가리킬 수 있는 포인터이기 때문이다. 심지어 함수도 가리킬 수 있기 때문에 void 포인터를 이용해 함수를 실행할 수도 있다. 선언은 다음과 같이 할 수 있다.void *ptr; 그리고 어떤 데이터든 주소값만 대입하면 된다. ex) int a = 10; float b = 10.1f; void *aPtr = &a; void *bPtr = &b; void 포인터를 사용하기 위해선 대입한 데이터형으로 형변환 시킨 후에 사용해야 한다. 왜냐하면 void 포인터가 뭘 가리키는 지 모르기 때문이다. ex)std::cout