From dba9ea18f87db90ff521b76310eafe80054ccc16 Mon Sep 17 00:00:00 2001 From: halw Date: Fri, 19 Mar 2010 18:34:10 +0000 Subject: [PATCH] Author:halw Date:2010-03-19T16:31:09.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@532 abb3cda0-5349-4a8f-a601-0c33ac3a8c38 --- .../eiffelstudio/_images/error-cursor_0.png | Bin 0 -> 1552 bytes .../_images/error-cursor_0.png.data | 3 + .../_images/es_gt_compilation_wizard_01.png | Bin 0 -> 9945 bytes .../es_gt_compilation_wizard_01.png.data | 3 + ..._gt_error_list_tool_pnd_validity_error.png | Bin 0 -> 12012 bytes ...rror_list_tool_pnd_validity_error.png.data | 3 + .../handling-syntax-and-validity-errors.wiki | 58 ++++++++++-------- 7 files changed, 41 insertions(+), 26 deletions(-) create mode 100644 documentation/current/eiffelstudio/_images/error-cursor_0.png create mode 100644 documentation/current/eiffelstudio/_images/error-cursor_0.png.data create mode 100644 documentation/current/eiffelstudio/_images/es_gt_compilation_wizard_01.png create mode 100644 documentation/current/eiffelstudio/_images/es_gt_compilation_wizard_01.png.data create mode 100644 documentation/current/eiffelstudio/_images/es_gt_error_list_tool_pnd_validity_error.png create mode 100644 documentation/current/eiffelstudio/_images/es_gt_error_list_tool_pnd_validity_error.png.data diff --git a/documentation/current/eiffelstudio/_images/error-cursor_0.png b/documentation/current/eiffelstudio/_images/error-cursor_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b882ac2379c08899ecd8893cf66bf28cf1bf0ba4 GIT binary patch literal 1552 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 literal 0 HcmV?d00001 diff --git a/documentation/current/eiffelstudio/_images/es_gt_compilation_wizard_01.png.data b/documentation/current/eiffelstudio/_images/es_gt_compilation_wizard_01.png.data new file mode 100644 index 00000000..5b95651e --- /dev/null +++ b/documentation/current/eiffelstudio/_images/es_gt_compilation_wizard_01.png.data @@ -0,0 +1,3 @@ +title=es gt compilation error wizard 01 +author=halw +path=content/es-gt-compilation-error-wizard-01 diff --git a/documentation/current/eiffelstudio/_images/es_gt_error_list_tool_pnd_validity_error.png b/documentation/current/eiffelstudio/_images/es_gt_error_list_tool_pnd_validity_error.png new file mode 100644 index 0000000000000000000000000000000000000000..9225c621a4e155f6f695e3670f5f244260a09079 GIT binary patch literal 12012 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 literal 0 HcmV?d00001 diff --git a/documentation/current/eiffelstudio/_images/es_gt_error_list_tool_pnd_validity_error.png.data b/documentation/current/eiffelstudio/_images/es_gt_error_list_tool_pnd_validity_error.png.data new file mode 100644 index 00000000..e262f1ea --- /dev/null +++ b/documentation/current/eiffelstudio/_images/es_gt_error_list_tool_pnd_validity_error.png.data @@ -0,0 +1,3 @@ +title=es gt error list tool pnd validity error +author=halw +path=content/es-gt-error-list-tool-pnd-validity-error diff --git a/documentation/current/eiffelstudio/eiffelstudio-guided-tour/handling-syntax-and-validity-errors.wiki b/documentation/current/eiffelstudio/eiffelstudio-guided-tour/handling-syntax-and-validity-errors.wiki index 1b27b75f..6e5c4ac8 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-guided-tour/handling-syntax-and-validity-errors.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-guided-tour/handling-syntax-and-validity-errors.wiki @@ -1,35 +1,41 @@ [[Property:title|Handling Syntax and Validity Errors]] [[Property:weight|-3]] [[Property:uuid|c2be8123-b793-f8ce-e082-d4fdacc6bbe6]] + So far we have tried to make sure that everything went smoothly. But in actual software development you may encounter error situations, and it is useful to know what can happen then. -

+ + ==Levels of language description== -Let's remind ourselves first of how the language is specified. The book [[Eiffel: The Language]], the language reference, carefully distinguishes between three levels of description: '''syntax''', '''validity''' and '''semantics'''. Their roles are clearly distinct: +Let's remind ourselves first of how the language is specified. The [[ECMA Standard 367|ISO/ECMA Eiffel standard]] and the book [[Eiffel: The Language]] carefully distinguish between three levels of description: '''syntax''', '''validity''' and '''semantics'''. Their roles are clearly distinct: * Syntax defines the structure of software texts. A typical syntax rule states that an assignment starts with a Writable entity, continues with the symbol :=, and ends with an Expression. This is a purely structural specification, saying nothing for example about the types of the Writable and the Expression. * Validity, applicable only to syntactically legal texts, defines required consistency conditions. A typical validity rule states that in an assignment the right-hand-side Expression must conform -- a property of its type, defined rigorously on the basis of inheritance -- to the left-hand-side Writable. Eiffel has about 75 validity rules; part of the language's originality is that these rules are of the "if and only if" form, not only telling you individual error cases ("this is valid only if ... ") but also reassuring you that your text will in fact be valid if it satisfies the conditions listed exhaustively. * Semantics, applicable only to valid texts, defines the software's expected run-time behavior. A typical semantic rule states that an assignment replaces the value of its left-hand-side Writable by the value of the right-hand-side Expression at the time the assignment is executed, with precise rules on the different possible cases involving references, objects and simple values. You may make an error at any of these levels: * Writing = instead of := for the assignment symbol is a syntax error. -* Writing your_integer := your_real, with the types suggested by the names, is a validity error. -* Calling a feature on a void target, violating a precondition, causing a division by zero, are semantic errors. +* Writing your_integer := your_real, with the types suggested by the names, is a validity error. +* Violating a precondition, causing a division by zero, are semantic errors. Syntax and validity errors will be detected by the compilation process. For semantic errors, you will rely on contract checking and on the debugging tools described later. Let's look now at examples of the first two cases. -
+ + ==A syntax error== -To see what happens for a syntax error, replace the keyword is by ist in the first line of routine display of class PARENT (click the position immediately after the s and type a t.). Save the file by clicking the Save button or using CTRL-S and then compile the system. +To see what happens for a syntax error, replace the keyword do by dont in the routine display of class PARENT (click the position immediately after the o and type nt.). Save the file by clicking the Save button or using CTRL-S and then compile the system. -[[Image:index-75]] +[[Image:es gt development window syntax error 01|Purposely injected syntax error]] + +The error shows up in the [[Error List Tool|Error List tool]]. You can expand the entry to show the point at which the error was recognized by the compiler. + +To correct the error, just bring the mouse back to its location, remove the spurious nt, and click Save again; also click Compile to make sure that the project is recompiled up-to-date. + +You may wonder why the syntax error messages are not a little more verbose than just Syntax error. The reason is merely that Eiffel's syntax, being simple and regular, does not require sophisticated error messages; syntax errors usually result from trivial oversights. If you make a syntax error and the reason is not immediately clear, check the syntax summary in the [[Quick reference to Eiffel the language]] or the [[ECMA Standard 367|ISO/ECMA Eiffel Standard]]. -To correct the error, just bring the mouse back to its location, remove the spurious t, and click Save again; also click Compile to make sure that the project is recompiled up-to-date. -You may wonder why the syntax error messages are not a little more verbose than just Syntax error. The reason is merely that Eiffel's syntax, being simple and regular, does not require sophisticated error messages; syntax errors usually result from trivial oversights. If you make a syntax error and the reason is not immediately clear, check the syntax summary in the appendix of [[Eiffel: The Language]]. -
==A validity error== -A validity error is a violation of one of the validity constraints given in [[Eiffel: The Language]]. Every such constraint is identified by a four-letter code of the form VXXX (the first letter is always V). +A validity error is a violation of one of the validity constraints given in [[ECMA Standard 367|ISO/ECMA Eiffel Standard]]. Every such constraint is identified by a four-letter code of the form VXXX (the first letter is always V). A validity error will produce a precise error message, which includes the validity code. Although short, the error message is usually sufficient to find out what the error is. If not, you can get the complete rule, straight from the book. @@ -39,38 +45,38 @@ To see this mechanism at work, let us introduce a validity error. There is in fa If uncommented, this is a declaration of a feature of type INVALID. A class called INVALID indeed exists in file invalid.e of the root cluster, but it contains a validity error. To see what it is, remove the initial double-dash -- in the above line from class TESTROOT so that it is not a comment any more. -[[Image:index-76]] +[[Image:es gt development window validity error 01|inv: INVALID uncommented]] -Click Save, then Compile. Compilation starts but after a few degrees it stops with an error message that appears in the bottom Context Tool (you may have to do some resizing to see it in its entirety): +Click Save, then Compile. Compilation starts but after a few degrees it stops with an error message that appears in the Error List tool. Expand the entry and perhaps do some resizing to see it in its entirety: -[[Image:index-77]] +[[Image:es gt development window validity error 02|Validity error]] As the error message indicates, you have (shame on you) violated the validity rule VUAR, which requires the number and types of actual arguments in a routine call to match the number and types of formal arguments declared in the routine. One of the interesting properties of the error message is that everything in color is '''clickable''': class name, feature name, but also the error code. This means that you can start a Pick-and-Drop on any of these elements to find out more. -For example, to see the exact context of the error, pick-and-drop the name of the affected feature, display -- appearing on the fifth non-blank line, after Feature: -- and pick-and-drop it to the top Text window. (As you remember this means: right-click on it and release; move the mouse to the text window, without clicking any button; right-click again. During the move the cursor shows a cross, the symbol for features.) This displays the erroneous feature: +For example, to see the exact context of the error, pick-and-drop the name of the affected feature, display -- appearing in green on the fifth non-blank line -- and pick-and-drop it to the Editing tool. This displays the erroneous feature: -[[Image:index-78]] +[[Image:es gt development window validity error 03|Validity error exposed]] Note on this display a special property of Pick-and-Drop when its source is a feature name appearing in a validity error message: the instruction that causes the error is highlighted. -In the error message in the Context Tool, the error code itself, VUAR, is also clickable. Assuming the message was not sufficient to understand the error, you can use it to start a Pick-and-Drop. Do this now, by picking that code and starting to move the mouse, but not dropping yet: +In the error message in the Error List tool, the error code itself, VUAR, is also clickable. Assuming the message was not sufficient to understand the error, you can use it to start a Pick-and-Drop. Do this now, by picking that code and starting to move the mouse, but not dropping yet. The pebble shape for such information elements is a question mark ? enclosed in a small gold talk bubble ([[Image:error-cursor]]). Like other picked objects, when it is not over a droppable target, the pebble will be crossed in red ([[Image:error-cursor-disabled]]). The place to drop is the Explanation hole ([[Image:error-info]]) in the Error List toolbar: -[[Image:index-79]] +[[Image:es gt error list tool pnd validity error|Dropping a validity error pebble]] -The icon shape for such information elements is a question mark ?. If it is not on a droppable target, as in the bottom Context Tool, that icon will be crossed. In principle the place to drop is the Explanation hole in the Project toolbar, the only one that remains highlighted during the Move step of Pick-and-Drop: +When you drop the pebble, you'll see the Compilation Error Wizard appear: -[[Image:index-80]] +[[Image:es gt compilation error wizard 01]] -As is often the case when dropping into a specific hole, you don't need to shoot straight; dropping the pebble anywhere in the Editing Tool has the same effect as dropping it into the Explanation hole: +The wizard displays the complete text of the violated rule. Depending upon the particular violation, the rule will come straight from the pages of either [[Eiffel: The Language]] or the [[ECMA Standard 367|ISO/ECMA Eiffel standard]]. In this case, the VUAR rule definition used comes from Chapter 22, page 369 of [[Eiffel: The Language]]. An rule cited from the ISO/ECMA Eiffel standard will be state as such and will include the specific edition of the standard and the section number, for example: + +VEVI, ECMA-367, 2nd edition, section 8.19.17 + -[[Image:index-81]] +The VUAR rule that we violated has two clauses, numbered. Since the error message showed the error code as VUAR(1), the violated clause is the first; this convention of showing the clause number in parentheses applies to all multi-clause validity constraints. -The result is to display the complete text of the violated rule, straight from the pages of [[Eiffel: The Language]]. +To correct the error the easiest is to go back to class TESTROOT and reinstate the comment symbol -- (two consecutive hyphens) on the erroneous line. Save and compile to continue with a valid system. -The rule has several clauses, numbered. Since the error message showed the error code as VUAR(1), the violated clause is the first; this convention of showing the clause number in parentheses applies to all multi-clause validity constraints. -To correct the error the easiest is to go back to class TESTROOT and reinstate the comment symbol -- (two consecutive dashes) on the erroneous line. Save and compile to continue with a valid system. -