algorithm2e 包的异常处理伪代码(try-catch)

algorithm2e 包的异常处理伪代码(try-catch)

algorithm2e 中似乎没有这样的tryandcatch块。有没有办法在 algorithm2e 中添加自定义的 andtrycatch

有一个解决方案在 GitHub 中展示了如何使用 algorithmicx/algpseudocode 包完成此操作。我想在 algorithm2e 中执行此操作。

答案1

仔细观察了一下文档并找到了一个适用的解决方案:
\SetKwProg{Cmd}{block}{suffix}{end}
和部分是可选的suffixend

最小工作示例(MWE):

\usepackage[linesnumbered, ruled]{algorithm2e}

\begin{document}

\begin{algorithm}[t]
  \SetKwInOut{Input}{Input}
  \SetKwInOut{Output}{Output}
  \SetKwProg{try}{try}{:}{}
  \SetKwProg{catch}{catch}{:}{end}
  \Input{Array $a$ and index $i$}
  \Output{what the procedure returns}

  \try{}{
    $v \gets a[i]$
  }
  \catch{IndexOutOfBoundsException}{
    $v \gets -1$
  }
  \Return $v$
  \caption{Exception handling code}
  \label{alg:exep}
\end{algorithm}

\end{document}

输出:

在此处输入图片描述

相关内容