仓库源文

上个月初开始逐步对《Make Your Own Python Text Adventure: A Guide to Learning Programming》一书中的文字冒险游戏例程用木兰语言重写并改为中文标识符,由于接近该系列尾声,于是自己重现了 try……catch 最基本语法供例程所需(PyPI 0.0.16版本),当然余下还有try 相关与其他很多木兰功能悬赏待重现,随时恭候。

木兰的 try...catch 基本语法

可以 catch 所有错误,不用指定具体类型:

try {
  print([][0])
} catch e {
  print(e)
}

也可指定错误类型:

try {
  print(int('x'))
} catch e : ValueError {
  print('v')
}

catch 多个类型错误:

try {
  print([][int('0')])
} catch e : ValueError {
  print('v')
} catch e : IndexError {
  print('i')
}

值得注意的是,从 Python 代码改写为木兰代码时,容易写出这样的代码:

try {
  print([][int('0')])
} catch ValueError {
  print('v')
} catch IndexError {
  print('i')
}

此时会报错:default 'except:' must be last

至此,文字冒险游戏例程 所需的木兰语言功能已基本实现,游戏主要功能也已通过木兰编程语言实现。

但是,余下一个木兰引用特性导致的游戏 bug,尚未想到合适方法规避。如无好的解决方案,恐怕会非常影响木兰语言的实用性,期待能够早日处理。


附:代码量统计

主要部分的代码行数统计,格式为:上次->现在。