[ver]
	4
[sty]
	
[files]
[charset]
	82
	ANSI (Windows, IBM CP 1252)
[revisions]
	0
[sequence]
	90
	0
	0
	0
	12
	0
	Numbered List
	593
	bullet
	593
	indent bullet
	593
	Note
	593
	indent Note
	593
	tip
	593
	Caution
	593
	indentCaution
	593
	find
	0
	Footnote
	593
	indent Tip
	593
	indent Find
[prn]
	Apple LaserWriter II NTX
[port]
	LPT1:
[lang]
	1
[fldnames]
	Field1
	Field2
	Field3
	Field4
	Field5
	Field6
	Field7
	Field8
[desc]
	File ch07.rtf was converted from Rich Text Format on 4/7/94
	
	
	
	
	802475833
	52
	765732309
	78
	8
	0
	0
	0
	0
	
	
	
	
	
	
	1
[fopts]
	0
	1
	0
	0
	
	
[lnopts]
	2
	Body Text
	1
[docopts]
	5
	2
[GramStyle]
	
[ParaNum]
	1
[tag]
	Body Text
	2
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		0
		0
	[spc]
		24
		200
		4
		120
		120
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	1Body Text
	3
	1
	600
	1
	1200
	1
	3720
	0
[tag]
	Ahead
	3
	[fnt]
		Helvetica
		280
		0
		16385
	[algn]
		1
		1
		0
		0
		0
	[spc]
		40
		300
		4
		360
		120
		4
		100
	[brk]
		80
	[line]
		9
		0
		4
		0
		1
		1
		1
		110
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Bhead
	4
	[fnt]
		Helvetica
		240
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		280
		4
		100
		90
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Chead
	5
	[fnt]
		Helvetica
		200
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		80
		0
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Numbered List
	6
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		744
		336
		336
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		3
		<*:>.
		0
		3
		1
		1
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Numbered List
	0
	0
[tag]
	bullet
	7
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		300
		300
	[spc]
		40
		240
		4
		80
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		<*1>
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	bulleted list
	0
	0
[tag]
	1st lev para
	8
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		1080
		0
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	1st lev para
	0
	0
[tag]
	mono
	9
	[fnt]
		Courier
		180
		0
		32769
	[algn]
		1
		3
		720
		0
		0
	[spc]
		24
		220
		4
		120
		120
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	mono
	22
	1
	864
	1
	1209
	1
	1555
	1
	1900
	1
	2246
	1
	2592
	1
	2937
	1
	3283
	1
	3628
	1
	3974
	1
	4320
	1
	4665
	1
	5011
	1
	5356
	1
	5702
	1
	6048
	1
	6393
	1
	6739
	1
	7084
	1
	7430
	1
	7776
	1
	8121
	0
[tag]
	indent bullet
	11
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		1104
		216
		216
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		<*1>
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent bullet
	0
	0
[tag]
	Note
	12
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		600
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Note
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Note
	0
	0
[tag]
	2nd lev para
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		1320
		0
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		1
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	2nd lev para
	0
	0
[tag]
	Table Text
	0
	[fnt]
		Palatino
		180
		0
		49152
	[algn]
		1
		1
		0
		0
		0
	[spc]
		40
		200
		4
		79
		0
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Table Text
	0
	0
[tag]
	Body Text1
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		20
		40
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Body Text1
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	0
[tag]
	indent Note
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		600
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Note
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent Note
	0
	0
[tag]
	tip
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		480
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Tip
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	tip
	0
	0
[tag]
	Caution
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		900
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Caution
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Caution
	0
	0
[tag]
	indentCaution
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		900
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Caution
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indentCaution
	0
	0
[tag]
	Term
	0
	[fnt]
		Palatino
		200
		0
		49153
	[algn]
		1
		3
		720
		0
		0
	[spc]
		24
		240
		4
		0
		0
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	indent Term
	0
	[fnt]
		Palatino
		200
		0
		49153
	[algn]
		1
		3
		1080
		0
		0
	[spc]
		24
		240
		4
		0
		0
		4
		100
	[brk]
		16
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	indent Term
	0
	0
[tag]
	find
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		1800
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Finding Out More
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	find
	0
	0
[tag]
	procdure Bhd
	0
	[fnt]
		Helvetica
		220
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		260
		4
		100
		90
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Numbered List
	0
	0
[tag]
	procdure Chd
	0
	[fnt]
		Helvetica
		200
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		80
		80
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Numbered List
	0
	0
[tag]
	formula
	0
	[fnt]
		Helvetica
		180
		0
		16384
	[algn]
		1
		3
		1080
		0
		0
	[spc]
		40
		220
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	formula
	0
	0
[tag]
	Table Title
	0
	[fnt]
		Helvetica
		180
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		220
		4
		40
		80
		4
		100
	[brk]
		16
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Table Title
	0
	0
[tag]
	Column Head
	0
	[fnt]
		Palatino
		180
		0
		49154
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		220
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		11
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Column Head
	0
	0
[tag]
	call-out
	0
	[fnt]
		Helvetica
		160
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		180
		4
		0
		0
		1
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	call-out
	0
	0
[tag]
	chap number
	0
	[fnt]
		Helvetica
		720
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		520
		4
		0
		0
		4
		100
	[brk]
		0
	[line]
		17
		1680
		4
		0
		1
		1
		1
		420
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	chap number
	0
	0
[tag]
	Chapter Title
	0
	[fnt]
		Helvetica
		320
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		360
		4
		0
		480
		3
		100
	[brk]
		81
	[line]
		17
		8520
		3
		0
		1
		3
		1
		644
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	1st Pg Footer
	0
	[fnt]
		Palatino
		180
		0
		49153
	[algn]
		2
		3
		0
		0
		0
	[spc]
		33
		273
		1
		0
		0
		1
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	1st Pg Footer
	0
	0
[tag]
	right footer
	0
	[fnt]
		Palatino
		180
		0
		49153
	[algn]
		4
		1
		0
		0
		0
	[spc]
		33
		216
		1
		60
		0
		3
		100
	[brk]
		32
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	right footer
	1
	3
	8640
	0
[tag]
	left footer
	0
	[fnt]
		Palatino
		180
		0
		49153
	[algn]
		4
		1
		0
		0
		5212
	[spc]
		33
		216
		1
		60
		0
		3
		100
	[brk]
		32
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	left footer
	1
	3
	8640
	0
[tag]
	Footnote
	0
	[fnt]
		Times New Roman
		180
		0
		49152
	[algn]
		1
		3
		0
		244
		0
	[spc]
		40
		2400
		3
		0
		0
		1
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		<*:>
		0
		1
		1
		256
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Footnote
	0
	0
[tag]
	Figure Title
	0
	[fnt]
		Helvetica
		180
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		220
		4
		40
		80
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	indent Tip
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		480
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Tip
		18944
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent tip
	0
	0
[tag]
	indent Find
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		1800
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Finding Out More
		18944
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent find
	0
	0
[tag]
	copyrt
	0
	[fnt]
		Palatino
		180
		0
		49152
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		220
		4
		0
		60
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	copyrt
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	1200
[tag]
	seealso
	0
	[fnt]
		Helvetica
		200
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		80
		0
		4
		100
	[brk]
		16
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	seealso
	0
	0
[tag]
	crossref
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		0
		0
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	crossref
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	0
[tag]
	popref
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		513
		3
		720
		0
		720
	[spc]
		40
		240
		4
		0
		0
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	popref
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	0
[lay]
	Standard
	3079
	[rght]
		12960
		10166
		1
		960
		1200
		3
		960
		720
		0
		1
		0
		1
		0
		2
		1
		960
		9446
		5
		1
		720
		1
		1440
		1
		2880
		1
		4320
		1
		5760
	[lft]
		12960
		10166
		1
		720
		1200
		3
		960
		960
		0
		1
		0
		1
		0
		2
		1
		720
		9206
		5
		1
		720
		1
		1440
		1
		2880
		1
		4320
		1
		5760
	[hlft]
	[lyfrm]
		1
		3008
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		1
	[frmlay]
		960
		10166
		1
		720
		180
		3
		480
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		0
	[txt]
@right footer@LotusScript Language Reference	10/03/94

>
	[hrght]
	[lyfrm]
		1
		11200
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		2
	[frmlay]
		960
		10166
		1
		960
		180
		3
		480
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		0
	[txt]
@right footer@10/03/94<:f>	LotusScript Language Reference

>
	[flft]
	[lyfrm]
		1
		5056
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		3
	[frmlay]
		12960
		10166
		1
		720
		480
		3
		11940
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		0
	[txt]
@right footer@page <:P10,0,>	Lotus Strictly Private

>
	[frght]
	[lyfrm]
		1
		13248
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		4
	[frmlay]
		12960
		10166
		1
		960
		480
		3
		11940
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		0
	[txt]
@right footer@Lotus Strictly Private	page <:P10,0,>

>
[elay]
[l1]
	0
[pg]
	8
	16 160 80 0 0 0 0 240 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	24 288 8 0 1 0 0 220 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	32 163 5 0 1 0 0 220 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	36 512 65 32 1 0 0 220 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	53 160 65 32 0 0 0 240 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	65 0 61 512 0 0 0 240 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	81 0 74 512 0 0 0 240 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	84 460 62 1025 1 1 0 220 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
[edoc]
@Chapter Title@<:#1364,8486><:f>Chapter 7  <**>Error Processing

<:f>This chapter describes the LotusScript error-handling behavior. For reference information about the functions and statements in LotusScript that implement error handling, see the following function and statement descriptions in Chapter 11, 
</S>Functions and Statements</T>:<:h<**>
@right footer@Lotus Strictly Private	page <:P10,0,>

>

@popref@<:#240,8486><:f>ERL Function: to return the line number of the current error

@popref@<:#240,8486>Err Function: to return the current error number

@popref@<:#240,8486>Err Statement: to set the current error number

@popref@<:#240,8486>Error and Error$ Functions: to return the error message for the current error

@popref@<:#240,8486>Error Statement: to define an error number and its corresponding message

@popref@<:#240,8486>On Error Statement: to handle runtime errors in a script

@popref@<:#240,8486>Resume Statement: to resume script execution at a specified statement

@Ahead@<:#410,8486><:f>Types of Errors<:X8,1;Index "Handling errors" #><:X8,1;Index "Errors" # "handling"><:f><:X8,1;Index "Error processing" #><:X8,1;Index "Errors" # "types of">

<:#200,8486><:f>LotusScript recognizes two kinds of errors:

@bullet@<:#720,8486>Compiler errors are errors that are found and reported when the compiler attempts to compile the script. Common compiler errors are errors in the syntax of a statement, or errors in specifying the meaning of names.

@1st lev para@<:#960,8486><:f>A compiler error prevents a script from being compiled. The compiler reports errors to the output window. You need to correct any such errors by revising the script source statements that generated the error, and re-compiling the script, before the scri
pt can run.

@bullet@<:#960,8486>Runtime errors are found when LotusScript attempts to execute the script. A runtime error represents a condition that exists when the script is run, but could not be predicted at compile time. Examples of runtime errors are attempting to open a file that do
esn</R>t exist, or attempting to divide a number by zero.

@1st lev para@<:#720,8486><:f>Runtime errors prevent a script from running to normal completion. When a runtime error occurs, script execution will end unless your script includes statements to handle the error.

@1st lev para@<:#720,8486><:f>LotusScript anticipates many runtime errors, and identifies each with a name, a number, and a standard message to describe it. Within a script, you can also define your own runtime errors and attach the same kind of information to them. 

@Ahead@<:#410,8486><:f>Handling Runtime Errors<:X8,2;Index "Handling errors" #><:X8,2;Index "Errors" # "handling">

<:#800,8486><:f>To handle a runtime error, you write statements that will be executed when the error occurs. This set of statements is called an error-handling routine. Ordinarily, an error-handling routine performs some special action related to the error, and then ex
ecution continues normally.

<:#800,8486><:f>You can specify that an error-handling routine should handle only a particular 
<**>error in the script, or any runtime error at all in the script. You can write several error-handling routines, each to handle a particular error; and also a general routine to handle all the remaining possible errors.

<:#800,8486><:f>The following extended example shows how a runtime error might arise, how it might be avoided, and how a script might handle it. The straightforward error processing illustrated here uses the statements On Error and Resume, the standard error-processing
 features in the language.

<:#400,8486>Suppose that your script includes a Sub named GetLine to fetch some values from the first line of a file whose name the user specifies. For example:

@mono@<:#1980,8486>DIM Number1 AS INTEGER, Number2 AS INTEGER, Number3 AS INTEGER<**>DIM FileName AS STRING<**><**>SUB GetLine  
<**>  FileName = INPUTBOX("Enter a file name:") <**>  OPEN FileName FOR INPUT AS #1<**>  INPUT #1, Number1, Number2, Number3<**>  CLOSE #1<**>END SUB

<:#600,8486><:f>When GetLine runs, if the user enters the name of a nonexistent file, an error occurs and execution ends. One way to solve this problem is to use a loop, forcing the user to enter file names until the first that names an existing file, as in this exampl
e:

@mono@<:#3080,8486>DIM Number1 AS INTEGER, Number2 AS INTEGER, Number3 AS INTEGER<**>DIM FileName AS STRING<**><**>SUB GetLine<**>  DO<**>    FileName = INPUTBOX("Enter a file name:")<**>    WHILE DIR(FileName) = ""<**>      OPEN FileName FOR INPUT AS #1<**>      INPUT #1, Nu
mber1, Number2, Number3<**>      CLOSE #1<**>    WEND<**><**>  LOOP<**>END SUB

<:#600,8486><:f>The Dir function checks to see if the file exists. If it does, Dir returns the name of the file; otherwise it returns the empty string. At first glance, this looks like a good solution, but there are a couple of problems with it:

@bullet@<:#720,8486>The Dir function accepts wildcards in its input, such as </S>*.txt</T>, and will return a non-empty string if any existing file name matches the wildcard. In this case, the Open statement will fail, even though the Dir function found a file.

@bullet@<:#720,8486>In this world of networks and shared file storage, a file that exists when the Dir function is executed might be deleted before the Open statement is executed. This is a tiny window of time, but the problem can occur.

<:#600,8486>To solve this problem properly, you must deal with the problem when it occurs, since you can</R>t handle it ahead of time. The On Error statement addresses this purpose. This example is a version of the above Sub, using the On Error statement:

@mono@<:#3300,8486>DIM Number1 AS INTEGER, Number2 AS INTEGER, Number3 AS INTEGER<**>DIM FileName AS STRING<**><**>SUB GetLine    
<**>  ON ERROR GOTO DoesNotExist<**>Try:<**>  FileName = INPUTBOX("Enter a file name:")   
<**>  OPEN FileName FOR INPUT AS #1   <**>  INPUT #1, Number1, Number2, Number3 
<**>  CLOSE #1 <**>  EXIT SUB<**><**>DoesNotExist:<**>  RESUME Try<**>END SUB

<:#600,8486><:f>The On Error statement tells LotusScript to continue execution at the label DoesNotExist whenever an error occurs. The Resume statement continues normal execution at the label Try. This requires the user to re-enter the name of the file.

<:#800,8486>Now suppose that the Sub GetLine performs some other tasks besides reading values from a file. Other errors might occur when GetLine runs. If you want execution of your script to end for all errors except a particular one, add an error number to the On Erro
r statement to make it more specific, as in this example:

@mono@<:#4180,8486>%INCLUDE "LSERR.LSS"<**><**>DIM Number1 AS INTEGER, Number2 AS INTEGER, Number3 AS INTEGER<**>DIM FileName AS STRING<**><**>SUB GetLine<**>  ON ERROR ErrOpenFailed GOTO DoesNotExist<**>Try:<**>  FileName = INPUTBOX("Enter a file name:") 
<**>  OPEN FileName FOR INPUT AS #1<**>  INPUT #1, Number1, Number2, Number3 
<**>  CLOSE #1<**>  PRINT (Number1 + Number2) / Number3   <**>    'This division might cause an error and end script execution. 
<**>  EXIT SUB<**><**>DoesNotExist:<**>  RESUME Try<**>END SUB

<:#1000,8486><:f>Including LSERR.LSS allows your script to refer to all commonly recognized errors by name. (Ordinarily you would put the %Include directive in a script that is loaded before any other script runs.) The name ErrOpenFailed appears in LSERR.LSS as a consta
nt, in a statement that assigns it a number. LotusScript recognizes the name as referring to a file open failure.

<:#600,8486>Now your revised script will handle only file open errors. If it includes no other On Error statements, then any other errors will cause execution to end. For example, if the division causes a divide-by-zero error, script execution ends.

<:#400,8486><:f>If you don</R>t want a divide-by-zero error to end script execution, create an error-handling routine for it. For example:

@mono@<:#5720,8486>%INCLUDE "LSERR.LSS"<**><**>DIM Number1 AS INTEGER, Number2 AS INTEGER, Number3 AS INTEGER<**>DIM FileName AS STRING<**><**>SUB GetLine<**>  ON ERROR ErrDivisionByZero GOTO DivideByZero 
<**>  ON ERROR ErrOpenFailed GOTO DoesNotExist<**>Try:<**>  FileName = INPUTBOX("Enter a file name:")<**>  OPEN FileName FOR INPUT AS #1<**>  INPUT #1, Number1, Number2, Number3<**>  CLOSE #1<**>  PRINT (Number1 + Number2) / Number3<**>    'The division mig
ht cause an error and end script execution.<**>  EXIT SUB<**><**>DoesNotExist:<**>  RESUME Try<**><**>DivideByZero:<**>  Number3 = _<**>    INPUTBOX("Number3 was zero. Enter a new value for Number3:")<**>  RESUME<**>END SUB

<:#200,8486><:f>Error-handling routines let you deal with each type of error in a different manner.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>%Include Directive: to include another script source file during compilation

@popref@<:#240,8486>On Error Statement: to handle runtime errors in a script

@popref@<:#240,8486>Resume Statement: to resume script execution at a specified statement

@Ahead@<:#410,8486><:f>Defining Errors and Error Numbers<:X8,5;Index "Handling errors" #><:X8,5;Index "Errors" # "handling"><:X8,5;Index "Errors" # "defining"><:X8,5;Index "Error numbers" #>

<:#1000,8486><:f>Every error recognized at runtime has its own error number that identifies it. When a recognized error happens during script execution, LotusScript records the error number, and then proceeds as directed by an On Error statement that refers to that numb
er. For example, you might write either of these On Error statements to tell LotusScript how to respond to an occurrence of error number 357:

@mono@<:#440,8486>ON ERROR 357 GOTO apoc_600<**>ON ERROR 357 RESUME NEXT

<:#200,8486><:f>Error numbers are established in two ways:

@bullet@<:#240,8486>By pre-definition in LotusScript

@1st lev para@<:#960,8486><:f>LotusScript recognizes many common errors, and has a built-in error number associated with each one. The text file LSERR.LSS defines constants for each error; the value of the constant is the error number. To make these available to your script, include
 this file in your script with the statement:

@1st lev para@<:#240,8486><:f180,QCourier New,0,0,0>%INCLUDE "LSERR.LSS"<:f>

@bullet@<:#240,8486>By an ERROR statement in a script 

@1st lev para@<:#480,8486>If the number 357 is not already pre-defined as an error number, this statement defines it:

@1st lev para@<:#240,8486><:f180,QCourier New,0,0,0>ERROR 357<:f>

@1st lev para@<:#720,8486><:f>This statement also creates an error. That is, when this statement is executed, LotusScript records the occurrence of error 357 and then proceeds as directed by an On Error 357 statement. This facility has two uses:

@indent bullet@<:#720,8486><:f>You can use it to define an error, give the error a number, and trigger error processing for that error. This is how you augment the pre-defined errors with errors and error processing specific to the needs of your script.

@indent bullet@<:#960,8486>You can use it to simulate a pre-defined error. This is how you force LotusScript to execute some error-processing code without depending on the error to occur while other statements are executing. This is useful for testing the error-processing logic in yo
ur script.

<:#600,8486><:f>When referring in an On Error statement to a pre-defined error, use the constant for the error, not the error number itself. For example, here are the statements in LSERR.LSS that define the error numbers and constants for two common errors:

@mono@<:R1,4,1,1200,1,1680,1,2160,1,5670,><:#220,8486>PUBLIC CONST ErrDivisionByZero         =  11	'Division by zero

@mono@<:R1,4,1,1200,1,1680,1,2160,1,5670,><:#220,8486>PUBLIC CONST ErrIllegalFunctionCall    =   5	'Illegal function call

<:R1,4,1,1200,1,1680,1,2160,1,5670,><:#400,8486>On Error statements should not mention the numbers 11 and 5. Write them in this form instead:

@mono@<:R1,4,1,1200,1,1680,1,2160,1,5670,><:#440,8486>ON ERROR ErrDivisionByZero ... <**>ON ERROR ErrIllegalFunctionCall ...

<:R1,4,1,1200,1,1680,1,2160,1,5670,><:#600,8486><:f>Similarly, define constants for your own error numbers. Then the constant names can be used instead of numbers in any Error statements and On Error statements that refer to the error. For example:

@mono@<:R><:#1320,8486>CONST OOBOUNDS 677	'A specific out-of-bounds<**>			'error<**>...<**>ERROR OOBOUNDS<**>...<**>ON ERROR OOBOUNDS ...

@Chead@<:#240,8486>Related topics

@popref@<:#240,8486><:f>Error Statement: to define an error number and its corresponding message

@popref@<:#240,8486>%Include Directive: to include another script source file during compilation

@popref@On Error Statement: to handle runtime errors in a script<:p<* >>

@Ahead@<:#410,8486><:f>Runtime Error Processing<:X8,7;Index "Handling errors" #><:X8,7;Index "Errors" # "handling"><:X8,7;Index "Error processing" #>

<:#600,8486><:f>A runtime error occurs either when LotusScript executes an Error statement, or when executing some other statement results in an error. LotusScript then proceeds as follows.

<:#1200,8486><:f>The error is recorded as the current error. LotusScript records the line number in the script where the error occurred, the error number, and the error message associated with that number, if any. Until an error handling routine is invoked for this erro
r, or another error is encountered, these are, respectively, the return values of the functions ERL, Err, and Error$. (Exception: The Err statement can be used to reset the current error number returned by the Err function.)

<:#1200,8486>LotusScript then looks in the current subprogram for an On Error statement associated with this error: either an On Error 
<+">n<-"> statement, where <+">n<-"> is the error number; or an On Error statement with no error number specified. If none is found, the search continues in the subprogram that called this subprogram, if any; and so on. If no associated On Error statement i
s found in any calling subprogram, then execution ends and the associated error message is displayed in the output window.

<:#200,8486><:f>If an associated On Error statement is found, then:

@bullet@<:#720,8486>If the On Error statement specifies Resume Next, execution continues at the statement following the statement that caused the error. The error is considered handled, but the return values of the functions ERL, Err, and Error$ are not reset.

@bullet@<:#720,8486>If the On Error statement specifies Goto <+">label<-">, then execution continues at the statement labeled 
<+">label<-">. This must be in the same subprogram as the On Error statement.

@1st lev para@<:#1200,8486><:f>In this case, the first Resume statement encountered after the labeled statement ends the error processing. The error is considered handled; the return values of the functions ERL, Err, and Error$ are reset to their initial values (line number 0, error 
number 0, and error message " " (the empty string) respectively); and execution continues at the location specified by the Resume statement.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>ERL Function: to return the line number of the current error

@popref@<:#240,8486>Err Function: to return the current error number

@popref@<:#240,8486>Err Statement: to set the current error number

@popref@<:#240,8486>Error and Error$ Functions: to return the error message for the current error

@popref@<:#240,8486>Error Statement: to define an error number and its corresponding message

@popref@<:#240,8486>On Error Statement: to handle runtime errors in a script

@popref@Resume Statement: to resume script execution at a specified statement<:p<* >>

@Ahead@<:#410,8486><:f>Runtime Error Constants<:X8,8;Index "Errors" # "list of runtime errors"><:X8,8;Index "List of runtime errors" #>

<:#600,8486><:f>The file LSERR.LSS contains Const definitions for the runtime errors recognized by LotusScript. The names of the error constants, the error numbers, and the error messages can be used in scripts. A sample from this file is shown below:

@mono@<:R1,4,1,1200,1,1680,1,2160,1,5790,><:#1760,8486>PUBLIC CONST ErrUSER                    =   1	' User-defined error<**>PUBLIC CONST ErrReturnWithoutGoSub      =   3	' RETURN without GOSUB<**>PUBLIC CONST ErrIllegalFunctionCall     =   5	' Illegal function call<**>PUBLIC CONST ErrOverflow                = 
  6	' Overflow<**>PUBLIC CONST ErrOutOfMemory             =   7	' Out of memory<**>PUBLIC CONST ErrSubscriptOutOfRange     =   9	' Subscript out of range<**>PUBLIC CONST ErrDivisionByZero          =  11	' Division by zero<**>PUBLIC CONST ErrTypeMismatch    
        =  13	' Type mismatch

>

[Embedded]
00034033
