On Tue, 9 Aug 2016 16:46:57 +0100, Jun Wu wrote:
> # HG changeset patch
> # User Jun Wu <qu...@fb.com>
> # Date 1470757528 -3600
> #      Tue Aug 09 16:45:28 2016 +0100
> # Node ID b43232adc0f8f60285921bdb65fd0f55710ed3b2
> # Parent  3dbc95f3eb31874ab4633f936acff4609714dc41
> # Available At https://bitbucket.org/quark-zju/hg-draft
> #              hg pull https://bitbucket.org/quark-zju/hg-draft -r 
> b43232adc0f8
> dispatch: split global error handling out so it can be reused
> 
> We may want a similar error handling at worker.py. This patch extracts the
> error handling logic to "callcatch" so it can be reused.
> 
> diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
> --- a/mercurial/dispatch.py
> +++ b/mercurial/dispatch.py
> @@ -150,7 +150,7 @@ def _runcatch(req):
>      except ValueError:
>          pass # happens if called in a thread
>  
> -    try:
> +    def _runcatchfunc():
>          try:
>              debugger = 'pdb'
>              debugtrace = {
> @@ -212,6 +212,16 @@ def _runcatch(req):
>              ui.traceback()
>              raise
>  
> +    return callcatch(ui, _runcatchfunc)
> +
> +def callcatch(ui, func):
> +    """call func() with global exception handling
> +
> +    return func() if no exception happens. otherwise do some error handling
> +    and return an exit code accordingly.
> +    """
> +    try:
> +        return func()

The code and docstring look good, but did you try using this function?
I suspect it would create an import cycle.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to