22 Mon
[HEAD FIRST PYTHON] 11๊ฐ ์์ธ ์ฒ๋ฆฌ
๋ฐ์ํ ์ ์๋ ๋ฌธ์
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์คํจ
์น ๊ณต๊ฒฉ
SQL ์ธ์ ์ : ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ ธ๋ฆฐ ๊ณต๊ฒฉ
์ฌ์ดํธ ์คํฌํฐ๋ฆฝํ : ์น์ฌ์ดํธ๋ฅผ ๋ ธ๋ฆฐ ๊ณต๊ฒฉ
์ ์ถ๋ ฅ์ ์ฒ๋ฆฌ ์๊ฐ
ํจ์ ํธ์ถ์ ์คํจ
builtins.RuntimeError
์ฝ๋๋ ๋ก์ง์ด ์๋ชป๋๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํค๊ฒ ๋๋ค. ๋๋ถ๋ถ์ ์๋ฌ๋ ์ธํฐํ๋ฆฌํฐ์์ ๋ด์ฅ๋ ์์ธ๋ก ์ฒ๋ฆฌํ๋ค. ๋ชจ๋ ๋ด์ฅ ์์ธ ๋ชฉ๋ก์ https://docs.python.org/3/library/exceptions.html ์์ ํ์ธํ ์ ์๋ค.
์๋ฌ๋ฅผ ์ก๋ ๊ฒ์์ ๊ทธ์น๋ ๊ฒ์ด ์๋๋ผ ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ๊ฐ์ ํ๋ ์ฝ๋๋ฅผ ์ง์ผ๋๋ค.
์ด ๋ ๋ค์ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ชจ๋ ์๋ฌ๋ Exception์ ์์๋ฐ๋๋ค.
FileNotFoundError
PermissionError
NameError
EOFError
BufferError
OSError
MemoryError
and so on
๋ค์ํ ๋ฌธ์ ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ์๋ ํ๊ณ๊ฐ ์๋ค. ๋ชจ๋ ๋ฐํ์ ์๋ฌ๋ฅผ ์ก์ ์ฒ๋ฆฌํ ์ ์๋ ์์ธ ์ฒ๋ฆฌ ์ค์ํธ๊ฐ ์กด์ฌํ๋ค.
์ด ๋์ ๋ฌธ์ ์ ๋ ์๋ค. ์ด๋ค ์ค๋ฅ๊ฐ ๋ฌ๋์ง ์์ธํ ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๋๋ sys
๋ก ์์ธ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
sys.exc_info()
๋ก ํ์ฌ ์ฒ๋ฆฌ ์ค์ธ ์์ธ์ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.์์ธ์ ์ ํ, ์์ธ ๊ฐ, ์ญ์ถ์ ๊ฐ์ฒด์ 3๊ฐ์ง ๊ฐ์ ๊ฐ๋ ํํ์ ๋ฐํํ๋ค.
์์ธ๊ฐ ์์ผ๋ฉด
(None, None, None)
์ ๋ฐํํ๋ค.
๋ชจ๋ ์์ธ๋ Exception์ ์์๋ฐ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
์ด ๋, ๋ค์๊ณผ ๊ฐ์ด ๊ฐํ๊ฒ ๊ฒฐํฉ๋ ์ฝ๋๋ฅผ ์ง์ํด์ผ ํ๋ค. python backend ์ฝ๋์ mysql backend database๊ฐ ๊ฐํ๊ฒ ๊ฒฐํฉ๋์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ํ์ MySQL์ PostgreSQL๋ก ๋ฐ๊ฟ์ผ ํ ๋ ๊ณค๋ํ ์ ์ด ๋ ์ ์๋ค.
์ปค์คํ
์์ธ๋ฅผ ๋ง๋ค ์๋ ์๋ค. ์ปค์คํ
์์ธ ํด๋์ค๋ฅผ ์ ์ํ๊ณ Exception ํด๋์ค๋ฅผ ์์ ๋ฐ๋๋ก ํ๋ค. ์ด ๋, raise
ํค์๋๋ก ์์ธ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
์ด ๋
ConnectionError
๋ด๋ถ๋ฅผ pass๋ก ์ ์ํ์ง๋ง ์ค์ ๋ก๋ Exception์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋์ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ด ์คํ๋๋ ๋ชจ์ต.
Last updated
Was this helpful?