Python_Scrapy_6. 오류와 예외
2654 단어 Scrapy
0. 프로그래밍 시 발생하는 오류와 이상
a. 코드 자체의 오류, 즉 버그.예를 들어 문자열에 인용부호를 적게 쳐서 문법 오류가 발생했다.
b. 코드 사용자의 잘못된 코드 사용으로 인한 문제.예를 들어 정수를 가져와야 하는데 문자열을 가져와야 한다
c. 코드를 사용하는 것은 운행 환경의 차이로 인한 문제이다.예를 들어 하드디스크에 데이터를 쓸 때 하드디스크가 가득 차거나 고장났다.
1.try...except...finally
a. 기본적인 사용 방법
try...except...finaly와if,else는 흐름을 제어하는 문장입니다.먼저try의 코드를 실행합니다. 만약 한 줄의 코드에 이상이 발생하면 except의 코드 블록으로 넘어가며, 프로그램이 틀리든지 않든finally의 코드를 실행합니다.
# coding:gbk
try:
#
f = open(r'C:\Fallout4.txt')
print('1')
print('2')
print('3')
print(f.read())
except:
print(' , .')
finally:
print(' ')
반환된 결과:
, .
# coding:gbk
try:
#
f = open(r'C:\test\Fallout4.txt')
print('1')
print('2')
print('3')
print(f.read())
except:
print(' , .')
finally:
print(' ')
반환된 결과
1
2
3
shut up and take my money.
except는 포획해야 할 오류와 오류의 원인 두 가지 인자를 추가할 수 있습니다.만약 두 개의 except 문장이 있다면try의 문장이 빠르고 동시에 이 두 가지 오류가 발생하면Python은 첫 번째 이상만 포착할 수 있습니다.
# coding:gbk
try:
#
a
f = open(r'C:\Fallout4.txt')
print('1')
print('2')
print('3')
print(f.read())
except NameError, e:
print(' {0}'.format(e))
except IOError, e:
print(' {0}'.format(e))
finally:
print(' '
2.raise
파이톤은 모든 것이 정상이라고 생각하는데, 프로그램이 틀리면 어떻게 해야 합니까?레이스로 스스로 이상을 일으킨다.
# coding:gbk
class FooError(StandardError):
pass
def foo(s):
n = int(s)
if n == 1:
raise FooError('invaild value:{0}'.format(s))
return 10/n
foo(1)
결실
Traceback (most recent call last):
File "C:/Users/bin/PycharmProjects/untitled1/test_raise.py", line 12, in
foo(1)
File "C:/Users/bin/PycharmProjects/untitled1/test_raise.py", line 9, in foo
raise FooError('invaild value:{0}'.format(s))
__main__.FooError: invaild value:1
3.with...as
with...as 문장은try...except...finally의 간략화 버전, with 이후 특수한 대상 as의 변수에 따라 그 특수한 변수에 값을 부여합니다.
with open(r'c:\test\Fallout4.txt') as anything :
print (anything.read())
구체적으로 다음 두 링크를 볼 수 있습니다.
with as 사용 상세 설명
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AWS lambda+scrapy로 정기적으로 서버리스 스크래핑 1.8먼저 결론을 쓰면 Lambda에서 움직이는 곳까지 갈 수 없었습니다. 다른 방법의 대처는 있으므로, 그쪽이 잘 되면 추기, 혹은 다른 기사로서 들려고 생각합니다. 이번에는 작성한 weather_spider.py를 A...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.