Webdeveloper_kim 2022. 1. 31. 11:23
728x90

어제에 이어 내부클래스를 마무리한다.

익명클래스

이름이 없기 때문에 생성자도 가질수 없고, 조상클래스의 이름이나 구현하고자 하는 인터페이스의 이름을 사요해서 정의하기 때문에 하나의 클래스로 상속받는 동시에 인터페이스를 구현하거나

둘 이상의 인터페이스를 구현할 수 없다.

 

예외처리

예외처리를 들어가기 전에 에러와 예외의 차이를 알아야 한다.

에러는 메모리부족이나 스택오버플로우 같이 일단 발생하면 복구할 수 없는 심각한 오류이다.

예외는 발생하더라도 수습될 수 있는 비교적 덜 심각한 것이다.

에러가 발생하면 프로그램의 비정상적인 종료를 막을 길이 없지만 예외는 발생하더라도 프로그래머가 이에 대한 적절한 코드를 미리 작성해 놓음으로써 프로그램의 비정상적인 종료를 막을 수 있다.

 

예외에는 크게 두가지 종류가 있는데,

1. Checked exeption - Runtime exception을 제외한 Exception클래스들이 여기 해당하며 주로 외부의 영향으로 발생할 수 있는 예외들이다. 또한 컴파일 시점에 체크되기 때문에 예외처리가 되어있지 않으면 컴파일자체가 진행될 수 없다.

2. Unchecked exeptio - Runtime exception와 그 자손클래스이 여기에 해당하며 주로 프로그래머의 실수에 의해 발생될 수 있는 예외들이다. 때문에 런타임시에 예외가 발생하므로 컴파일은 가능하다.

 

try - catch 구문

이 구문은 예외를 처리하기 위해 사용하는데 기본적인 구조는 다음과 같다.

try {

   (예외가 있는지 확인할 문장)

}

catch(확인할 예외) {

   (try구문 안에서 확인할 예외가 확인되었을 시 수행할 문장)

}

 

여기서 try블럭에서 예외를 발견하는 즉시 해당 catch문으로 가서 수행한다.

만일 일치하는 catch구문을 찾지 못하면 예외는 처리되지 못하고, try블럭 내에서 예외가 발생하지 않은 경우 catch블럭을 지나쳐 수행을 계속한다.

try구문에서 0/0에서 예외가 발생했기 때문에 4는 출력되지 않고 바로 catch구문으로 간다.

 

위의 예제에서 가운데 주석을 보면 상속관계의 예외는 어떻게 처리하는지 메모되어있다.

예외처리에서 catch구문은 예외 하나당 하나씩 적어도 되지만 수행할 문장이 중복될 경우 같이 선언할 수도 있는데 이를 멀티 catch블럭이라 한다.

이때 상속관계에 있다면 컴파일 에러가 발생할 수 있다.

멀티블럭 자체는 그리 많이 사용되지 않으니 알아두기만 하자.

추가적으로, 조상은 자손의 예외를 처리할 수 있다. 즉, ArithmeticException은 RuntimeException에 의해 처리될 수 있다.

예외에 대한 처리가 디테일할수록 갑작스런 비정상 종료를 원천봉쇄하기 때문에 사용자 친화적인 프로그램이라 할 수 있다.

 

 

오늘 java는 여기까지!

 

HTML

html에서는 마크업이라는 용어를 사용하는데 이는 <>, </> 즉 꺽쇠로 열거나 닫는 모든 것들을 지칭한다.

꺽쇠로 구분되는 부분들을 모두 태그라 지칭하는데 태그 안에 사용하는 속성들은 모두 소문자로 사용할 것을 권장한다.

부모 태그와 태그 사이에 자식태그를 넣을 때는 들여쓰기를 한다.

HTML에서도 들여쓰기는 가독성 때문에 매우 중요하다.

Visual Studio Code에서도 tab으로 들여쓰기를 하는데 여기서는 스페이스바 4개로 인식한다.

이클립스에서는 ctrl shift 방향키가 복사였지만 여기서는 alt shift 방향키가 복사의 역할을 한다.

또한 값을 쓸 때에는 "나 '를 사용해야한다. 비주얼 스튜디오 코드에서는 왠만하면 에러가 생기지 않는데, 그럼에도 불구하고 꼭 쓰는 버릇을 들이자.

 

HTML문서의 기본 구조

웹 문서는 아무리 길더라도 <!doctype>, <html>, <head>, <body> 네가지 태그를 이용해 문서의 시작과 끝을 표시한다.

<!doctype>은 문서의 유형을 지정하는 선언문으로, 사용한 유형을 알려 줌으로써 그에 맞는 방법으로 해석하라는 뜻이다. dtd(document type definition)을 하는 부분이라고 할 수 있다.

<html>태그는 웹 문서의 시작을 알리는 태그이며 오로지 <head>와 <body>만을 자손으로 갖는다.

<head>태그는 브라우저에 정보를 주는 태그이다. 화면에는 보이지 않지만 웹 브라우저가 알아야 할 정보들은 모두 입력하는 부분이다.

<meta>태그는 head태그의 자손으로, 문자 세트를 비롯한 문서 정보들을 명시한다. 여기에서 사용자가 사용하는 기기에 따라 어떤 문자 세팅을 이용할지 명시한다.

<body>태그는 실제 브라우저에 표시될 내용이 들어간다. 책에서 설명될 대부분의 태그가 이 부분에 들어간다.

validator에 URL을 넣고 에러를 확인할 수 있다.

 

오늘은 여기까지!

팀 프로젝트가 시작되고 매일 두시간을 할애하고있기 때문에 진도가 그리 빠르지는 않다.

하지만 현재 진행중인 진도가 html도 그렇고 java도 그렇고 사용자 친화적인 프로그램을 위한 아주 중요한 부분이다.

좋은 프로그램을 만들기 위해서는 더욱 챙겨봐야 할 부분인것 같다.

728x90