fix catch

This commit is contained in:
Daniella / Tove 2024-08-29 09:36:53 +02:00
parent ef266f3811
commit 1fd2647688
4 changed files with 7 additions and 6 deletions

View file

@ -8,7 +8,7 @@ func main { mega | with args ;
catch { catch {
" > " print readln dyn-read exec2 "\n" print " > " print readln dyn-read exec2 "\n" print
} }
with { with err ; { with err ;
err:message dup null eq if { err:message dup null eq if {
pop pop
"Uncaught error." "Uncaught error."

View file

@ -179,8 +179,10 @@ fn read_block(str_words: &[String], isfn: bool) -> Result<(Option<u32>, Words, u
types.push(str_words[i].to_owned()); types.push(str_words[i].to_owned());
i += 1; i += 1;
} }
println!("{} {}", str_words[i], str_words[i+1]);
let blk = read_block(&str_words[i + 1..], false)?; let blk = read_block(&str_words[i + 1..], false)?;
i += 1 + blk.2; i += 2 + blk.2;
println!("{} {}", str_words[i], str_words[i+1]);
let ctch = read_block(&str_words[i + 1..], false)?; let ctch = read_block(&str_words[i + 1..], false)?;
i += 1 + ctch.2; i += 1 + ctch.2;
words.push(Word::Key(Keyword::Catch(types, blk.1, ctch.1))) words.push(Word::Key(Keyword::Catch(types, blk.1, ctch.1)))

View file

@ -473,7 +473,7 @@ func call-main-on-file { | with file ;
update-types update-types
argv main exit argv main exit
} }
with { with err ; { with err ;
err:message dup null eq if { err:message dup null eq if {
pop pop
"Uncaught error." "Uncaught error."

View file

@ -120,8 +120,7 @@ func main { int | with args ;
"testing http" println "testing http" println
def req "tudbut.de" 81 "GET" "/spltest" Request:new =req def req "tudbut.de" 81 "GET" "/spltest" Request:new =req
req:send:body _str println req:send:body _str println
} } { with e ;
with { with e ;
e:message println e:message println
"it seems the internet is not available" println "it seems the internet is not available" println
} }
@ -136,7 +135,7 @@ func main { int | with args ;
catch { catch {
"heya" throw "heya" throw
} with { with e ; } { with e ;
e:message println e:message println
} }
"" println "" println