all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Problem positioning cursor
@ 2003-04-25 11:01 Victor Kirk
  2003-04-25 12:27 ` Exception Handling in LISP Gurucharan
       [not found] ` <mailman.5189.1051273202.21513.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 8+ messages in thread
From: Victor Kirk @ 2003-04-25 11:01 UTC (permalink / raw)


Hi,

I've wrote a function to insert a skeleton for a java try-catch
block, but I've run into a problem leaving the cursor in the
correct place.

If there is no active region I want the following code to be
inserted (note X marks the spot I want to leave the cursor at.

    try {
        X
    } catch(Exception e) {
        e.printStackTrace();
    } 

This works fine.

If there is code selected I want:

    try {
        someCode(toBeWrapped);
    } catch(Exception e) {
        e.printStackTrace();
        X
    } 

unfortunatly the cursor is left at the `n' in Exception.

If anyone has the time to point me in the right direction
it would be appreciated.


(defun vics-java-catch-insert(&optional has-finally)
  "Generate a skeleton for a java try-catch block. If the optional
has-finally is true then a finally block is also inserted."
  (interactive)
  (let ((ex-type (read-from-minibuffer "Exception Type: " "Exception" nil
nil nil nil nil))
		(try-start)    ;; start of try catch block
		(try-end)      ;; end of 
		(try-body nil) ;; code to insert within try/catch
		(edit-point))  ;; point to leave user at
	;; If a region is selected save this to try-body
	(if (c-region-is-active-p)
		(setq try-body (delete-and-extract-region (mark) (point))))
	(setq try-start (point))
	(insert "try {\n")
	(if (not try-body)
		(setq edit-point (point))
	  (insert try-body))
	(insert (format "\n} catch (%s e) {\n" ex-type))
	(insert "e.printStackTrace();\n")
	;; if we had some text leave save location at the end of the catch
	;; block
	(if (eq nil (not try-body))
		(setq edit-point (point)))
	(insert "}")	;
	(if (eq nil (not has-finally))
		(insert " finally {\n\n}"))
	(setq try-end (point))
	(indent-region try-start try-end nil)
	(goto-char edit-point)
	(c-indent-command)))



Vic
--
Victor Kirk
Analyst
Serco Integrated Transport
--

This message, including attachments, is intended only for the use by the
person(s) to whom it is addressed. It may contain information which is
privileged and confidential. Copying or use by anybody else is not
authorised. If you are not the intended recipient, please contact the sender
as soon as possible. The views expressed in this communication may not
necessarily be the views held by Serco Integrated Transport.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Exception Handling in LISP.
  2003-04-25 11:01 Problem positioning cursor Victor Kirk
@ 2003-04-25 12:27 ` Gurucharan
       [not found] ` <mailman.5189.1051273202.21513.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 8+ messages in thread
From: Gurucharan @ 2003-04-25 12:27 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 421 bytes --]

Hi All,
        Can we catch any unknown exception in Lisp like C++ ?

That is, like the C++ ... (Epsilon code).
can we catch any exception irrespective of which
exception was thrown ?

Example:
try {
     // Something ....
}
catch (...) {    // Do something after Exception has occurred ...
                }

Any material/links on Exception Handling in LISP
is welcome.

Thanks.

Kind Regards,
            gurucharan



[-- Attachment #1.2: Type: text/html, Size: 945 bytes --]

[-- Attachment #2: Type: text/plain, Size: 151 bytes --]

_______________________________________________
Help-gnu-emacs mailing list
Help-gnu-emacs@gnu.org
http://mail.gnu.org/mailman/listinfo/help-gnu-emacs

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Exception Handling in LISP.
       [not found] ` <mailman.5189.1051273202.21513.help-gnu-emacs@gnu.org>
@ 2003-04-25 13:25   ` David Kastrup
  2003-04-25 14:10   ` Kai Großjohann
  1 sibling, 0 replies; 8+ messages in thread
From: David Kastrup @ 2003-04-25 13:25 UTC (permalink / raw)


Gurucharan <gurucharan.murudeshwar@wipro.com> writes:

> Hi All,
>         Can we catch any unknown exception in Lisp like C++ ?
> 
> That is, like the C++ ... (Epsilon code).
> can we catch any exception irrespective of which
> exception was thrown ?
> 
> Example:
> try {
>      // Something ....
> }
> catch (...) {    // Do something after Exception has occurred ...
>                 }
> 
> Any material/links on Exception Handling in LISP
> is welcome.

Take a look at catch, throw, condition-case and unwind-protect in the
Elisp manual.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Exception Handling in LISP.
       [not found] ` <mailman.5189.1051273202.21513.help-gnu-emacs@gnu.org>
  2003-04-25 13:25   ` David Kastrup
@ 2003-04-25 14:10   ` Kai Großjohann
  1 sibling, 0 replies; 8+ messages in thread
From: Kai Großjohann @ 2003-04-25 14:10 UTC (permalink / raw)


Gurucharan <gurucharan.murudeshwar@wipro.com> writes:

> Can we catch any unknown exception in Lisp like C++ ?

Emacs Lisp has throw/catch and signal/condition-case.  I guess
signal/condition-case is more like what you want, since errors are a
special kind of signal.

Both provide ways to just `catch everything'.
-- 
file-error; Data: (Opening input file no such file or directory ~/.signature)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Exception Handling in LISP.
@ 2003-04-25 15:15 Bruce Park
  0 siblings, 0 replies; 8+ messages in thread
From: Bruce Park @ 2003-04-25 15:15 UTC (permalink / raw)


>From: Gurucharan <gurucharan.murudeshwar@wipro.com>
>To: "'help-gnu-emacs@gnu.org'" <help-gnu-emacs@gnu.org>
>Subject: Exception Handling in LISP.
>Date: Fri, 25 Apr 2003 17:57:37 +0530
>
>Hi All,
>         Can we catch any unknown exception in Lisp like C++ ?
>
>That is, like the C++ ... (Epsilon code).
>can we catch any exception irrespective of which
>exception was thrown ?
>
>Example:
>try {
>      // Something ....
>}
>catch (...) {    // Do something after Exception has occurred ...
>                 }
>
>Any material/links on Exception Handling in LISP
>is welcome.
Last time I checked, exception handling is NOT a part of LISP. Remember, 
LISP falls into logic programming.
>
>Thanks.
>
>Kind Regards,
>             gurucharan
>
>
>_______________________________________________
>Help-gnu-emacs mailing list
>Help-gnu-emacs@gnu.org
>http://mail.gnu.org/mailman/listinfo/help-gnu-emacs


_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*  
http://join.msn.com/?page=features/virus

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Exception Handling in LISP.
       [not found] <mailman.5195.1051283788.21513.help-gnu-emacs@gnu.org>
@ 2003-04-25 15:44 ` Jesper Harder
  2003-04-25 17:06 ` Kai Großjohann
  1 sibling, 0 replies; 8+ messages in thread
From: Jesper Harder @ 2003-04-25 15:44 UTC (permalink / raw)


"Bruce Park" <bpark79@hotmail.com> writes:

> Last time I checked, exception handling is NOT a part of LISP.

It must have been a long time since you checked :-) The ancient Lisps of
the 60s (Lisp 1.5 etc) didn't have built-in exception handling.

But Lisp (including Emacs Lisp and Common Lisp) has had exception
handling for a long time.

The OP might want to check Kent Pitman's paper "Exceptional Situations
In Lisp" for a discussion of exception handling in Common Lisp:

<http://www.nhplace.com/kent/Papers/Exceptional-Situations-1990.html>

> Remember, LISP falls into logic programming.

It doesn't.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Exception Handling in LISP.
       [not found] <mailman.5195.1051283788.21513.help-gnu-emacs@gnu.org>
  2003-04-25 15:44 ` Jesper Harder
@ 2003-04-25 17:06 ` Kai Großjohann
  1 sibling, 0 replies; 8+ messages in thread
From: Kai Großjohann @ 2003-04-25 17:06 UTC (permalink / raw)


"Bruce Park" <bpark79@hotmail.com> writes:

> Remember, LISP falls into logic programming.

One could say that Lisp is a functional language, but it's surely not
a logic programming language.

(There are two views on functional programming: one view requires
some features to be present (functions as first-class objects, ...),
and the other additionally forbids other features from being present
(assignments, ...).  Lisp is a functional language only according to
the former.)
-- 
file-error; Data: (Opening input file no such file or directory ~/.signature)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Exception Handling in LISP.
@ 2003-04-26  1:21 Bruce Park
  0 siblings, 0 replies; 8+ messages in thread
From: Bruce Park @ 2003-04-26  1:21 UTC (permalink / raw)


>From: kai.grossjohann@gmx.net (Kai Großjohann)
>To: help-gnu-emacs@gnu.org
>Subject: Re: Exception Handling in LISP.
>Date: Fri, 25 Apr 2003 19:06:48 +0200
>
>"Bruce Park" <bpark79@hotmail.com> writes:
>
> > Remember, LISP falls into logic programming.
>
>One could say that Lisp is a functional language, but it's surely not
>a logic programming language.
Oops. I meant to say functional. I was thinking of Prolog and not LISP. 
Sorry for the confusion.
>
>(There are two views on functional programming: one view requires
>some features to be present (functions as first-class objects, ...),
>and the other additionally forbids other features from being present
>(assignments, ...).  Lisp is a functional language only according to
>the former.)
>--
>file-error; Data: (Opening input file no such file or directory 
>~/.signature)
>_______________________________________________
>Help-gnu-emacs mailing list
>Help-gnu-emacs@gnu.org
>http://mail.gnu.org/mailman/listinfo/help-gnu-emacs


_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online  
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2003-04-26  1:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-04-25 11:01 Problem positioning cursor Victor Kirk
2003-04-25 12:27 ` Exception Handling in LISP Gurucharan
     [not found] ` <mailman.5189.1051273202.21513.help-gnu-emacs@gnu.org>
2003-04-25 13:25   ` David Kastrup
2003-04-25 14:10   ` Kai Großjohann
  -- strict thread matches above, loose matches on Subject: below --
2003-04-25 15:15 Bruce Park
     [not found] <mailman.5195.1051283788.21513.help-gnu-emacs@gnu.org>
2003-04-25 15:44 ` Jesper Harder
2003-04-25 17:06 ` Kai Großjohann
2003-04-26  1:21 Bruce Park

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.