haya0206 / BBAM_blocks

Apache License 2.0
0 stars 0 forks source link

Python에서의 오류 처리에 대한 토론 #5

Closed haya0206 closed 6 years ago

haya0206 commented 6 years ago

일단은 제가 작업하는 함수인 list.index('thing')의 경우를 들겠습니다. 파이썬 3.7에서는 저 thing이 리스트에 없으면 다음과 같은 오류가 납니다.

Traceback (most recent call last): File "", line 1, in ValueError: 'list' is not in list

이제 저 함수를 fillbert에서 실행하게 되면 되면 -1을 반환을 하게 됩니다. 그렇게 될 경우에는 아래와 같은 코드에서는 파이썬과 다른 오류가 나옵니다.

list = [] list.append('1') list.append('2') list[list.index('3')] = 10 print(df)

파이썬에서는 값이 없고 오류지만, fillbert는 [1,10]와 같이 좋지않은 값이 나오게 됩니다. 어떤식으로 처리할끼요?

hananthony commented 6 years ago

filbert.js를 버리고 그런 문제를 지원하는 파서를 찾는 것이 좋을 듯 합니다.

hananthony commented 6 years ago

자바스크립트 상에서 Array의 프로토타입을 미리 수정하면 됩니다.

Array.prototype.indexOf = function(v){for(var i = 0; i < this.length; i++) if(this[i] === v) return i; throw (new Error('No Index!'));}; lst = []; lst.push('1'); lst.push('2'); lst[lst.indexOf('3')] = 10; //에러 발생

haya0206 commented 6 years ago

filbert.js 에서의 2865번째 줄을 고치면 될거 같습니다