browser engineering 관련
에러 상황들
소혼
2025. 8. 31. 09:16
user@AL02296676 browserengineering-code % python3 browser.py http://localhost:8000/input.html
Traceback (most recent call last):
File "/Users/user/workspace/project/browserengineering-code/browser.py", line 1000, in <module>
Browser().new_tab(URL(sys.argv[1]))
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/Users/user/workspace/project/browserengineering-code/browser.py", line 987, in new_tab
new_tab.load(url)
~~~~~~~~~~~~^^^^^
File "/Users/user/workspace/project/browserengineering-code/browser.py", line 773, in load
self.document.layout()
~~~~~~~~~~~~~~~~~~~~^^
File "/Users/user/workspace/project/browserengineering-code/browser.py", line 660, in layout
child.layout()
~~~~~~~~~~~~^^
File "/Users/user/workspace/project/browserengineering-code/browser.py", line 547, in layout
child.layout()
~~~~~~~~~~~~^^
File "/Users/user/workspace/project/browserengineering-code/browser.py", line 547, in layout
child.layout()
~~~~~~~~~~~~^^
File "/Users/user/workspace/project/browserengineering-code/browser.py", line 397, in layout
max_ascent = max([word.font.metrics("ascent")
for word in self.children])
ValueError: max() iterable argument is empty
LineLayout에서 이런 에러가 나면 빈 리스트에서 최대값을 찾으려고 하기 때문입니다.
max_ascent = max(
(word.font.metrics("ascent") for word in self.children),
default=0
)
max_descent = max(
(word.font.metrics("descent") for word in self.children),
default=0
)
와 같이 기본 값을 줘서 해결할 수 있습니다.
반응형