When using return, break or continue in a finally block, it will stop the spread of any exceptions that were thrown in the try, else, or except blocks and will disregard any return statements.
try:client_obj.get_url(url)except(URLError,ValueError):client_obj.remove_url(url)exceptSocketTimeout:client_obj.handle_url_timeout(url)finally:break# avoid break in the finally block
try:client_obj.get_url(url)except(URLError,ValueError):client_obj.remove_url(url)exceptSocketTimeout:client_obj.handle_url_timeout(url)finally:return0# avoid return in the finally block
try:client_obj.get_url(url)except(URLError,ValueError):client_obj.remove_url(url)exceptSocketTimeout:client_obj.handle_url_timeout(url)finally:continue# avoid continue in the finally block
Compliant Code Examples
try:client_obj.get_url(url)except(URLError,ValueError):client_obj.remove_url(url)exceptSocketTimeout:client_obj.handle_url_timeout(url)finally:print("cleanup the mess")
원활한 통합. Datadog Code Security를 경험해 보세요
Datadog Code Security
이 규칙을 사용해 Datadog Code Security로 코드를 분석하세요
규칙 사용 방법
1
2
rulesets:- python-best-practices # Rules to enforce Python best practices.
리포지토리 루트에 위의 내용을 포함하는 static-analysis.datadog.yml을 만듭니다
무료 IDE 플러그인을 사용하거나 CI 파이프라인에 Code Security 검사를 추가합니다