프로그래밍

    [C#] try ~ finally

    [C#] try ~ finally

    1. 핵심 정리 using System; class Program { static void Main() { try { throw new Exception(); } catch(Exception e) { Console.WriteLine("catch"); } finally { Console.WriteLine("finally"); } } } ① catch vs finally 실행 결과 catch finally using System; class Program { static void Main() { try { // throw new Exception(); } catch(Exception e) { Console.WriteLine("catch"); } finally { Console.WriteLine("finall..

    [C#] 예외 필터 (exception filter)

    [C#] 예외 필터 (exception filter)

    1. 핵심 정리 using System; using System.Net; class Program { static void Main() { WebClient wc = new WebClient(); try { stirng s = wc.DownloadString("http://wwww.nnaver.ccom"); } catch(WebException e) { if(e.Status == WebExceptionStatus.NameResolutionFailure) Console.WriteLine("URL 입력 에러"); else if(e.Status == WebExceptionStatus.Timeout) Console.WriteLine("시간 초과"); else Console.WriteLine("다른 문제"); }..

    [C#] 예외를 처리하는 방법 (catch, Exception, rethrow)

    [C#] 예외를 처리하는 방법 (catch, Exception, rethrow)

    1. try ~ catch using System; using System.Net; class Program { static void Main() { WebClient wc = new Webclient(); string s = wc.DownloadString("http://www.naver.com"); Console.WriteLine(s); } } 웹클라이언트 객체를 만들어 주소의 소스를 받는 코드이다. 위 코드는 문제없이 네이버의 코드를 불러오는데 실수로 주소를 다르게 입력하거나 입력하지 않는다면 예외가 일어난다. 이러한 예외 처리는 어떻게 해야할까? 문제가 일어나는 부분의 메소드를 우클릭 후 정의로 이동해보면 알 수 있다. 정의로 이동 후 왼쪽 +버튼을 눌러 펼처보면 친절하게 예외에 대한 설명이 있다..

    [Python] virtualenv

    [Python] virtualenv

    모든 명령어는 cmd를 통해서 한다. 1. 파이썬 버전 확인 python --version 2. pip 버전 확인 pip --version 3. 파이썬 가상 환경 만들기 파이썬 가상 환경은 프로젝트 단위로 필요한 파이썬 패키지의 의존성을 관리하기 위해 사용하는 개발 도구 3.1 설치 pip install virtualenv virtualenvwrapper-win 3.2 명령어 mkvirtualenv : 가상 환경 생성 deactivate : 가상 환경 종료 rmvirtualenv : 가상 환경 삭제 workon : 가상 환경 진입 3.3 가상 환경 생성 mkvirtualenv testve workon 명령어만 입력 시 현재 생성된 목록을 볼 수 있다.

    [C#] 예외 처리

    [C#] 예외 처리

    0. 개요 using System; public static class FileManager { public static int CopyFile(string srcFileName, string dstFileName) { // ... return 100; } } class Program { static void Main() { FileManager.CopyFile("C:\\a.txt", "D:\\b.txt"); } } 위와 같이 파일 이름을 인자로 받아 앞의 인자의 내용을 뒤의 인자로 복사하는 코드가 있다고 해보자. 복사를 하면 복사한 양을 리턴해주게끔까지 해놓았다. 그런데 이러한 코드가 항상 성공한다는 보장이 없다. 사용자가 이름을 실수할 수도 있고, 접근 권한이 없을 수도 있는 등 실패할 가능성도 있다..

    [C#] 람다 표현식 (Lambda Expression)

    [C#] 람다 표현식 (Lambda Expression)

    1. 핵심 정리 using System; class Program { public static void foo(Func f) { int s = f(1, 2); Console.WriteLine(s); } static void Main(string[] args) { foo( ? ); } } Main에서 foo함수의 인자로 메소드를 받는데 메소드의 이름이 아닌 구현부를 넣을 수 있다. 이름을 제외한 인자~구현부까지 넣으면 되는데 형태는 아래와 같다. using System; class Program { public static void foo(Func f) { int s = f(1, 2); Console.WriteLine(s); } static void Main(string[] args) { foo(Add);..