自定義異常的兩種方式
一、丟擲異常
def
greet
(name, city):if
notisinstance
(name,
str)
:raise typeerror(
"name must be str")if
notisinstance
(city,
str)
:raise typeerror(
"age must be str"
)print
("my name is %s, and i come from"
%(name, city)
)greet(1,
2)
二、自定義異常(一)
呼叫父類exception的__init__方法
class
argumenterror
(exception)
:def
__init__
(self,
*args,
**kwargs)
: _args =
("引數錯誤",)
+ args
super
(argumenterror, self)
.__init__(
*_args,
**kwargs)
defdivision
(a, b)
:if b ==0:
raise argumenterror(
"0不能做除數")if
notisinstance
(a,(
int,
float))
ornot
isinstance
(b,(
int,
float))
:raise argumenterror(
"引數必須是數值型"
)return a / b
division(1,
0)division(1,
'a')
三、自定義異常(二)
使用__str__方法
class
argumenterror2
(exception)
:def
__init__
(self,
*args,
**kwargs)
: self.args = args
self.kwargs = kwargs
def__str__
(self)
:return
"%s"
%repr
(self.args)
+repr
(self.kwargs)
defdivision
(a, b)
:if b ==0:
raise argumenterror2(
"0不能做除數")if
notisinstance
(a,(
int,
float))
ornot
isinstance
(b,(
int,
float))
:import datetime
raise argumenterror2(
"引數必須是數值型"
, time=datetime.datetime.now(
).strftime(
'%f %h:%m:%s'))
print
(a / b)
division(1,
'test'
)
自定義dialog的兩種方式
介紹自定義對話方塊 dialog 的兩種方式 方式一 首先自定義乙個自己想要設計的對話方塊的介面布局,我的是這樣的 然後在activity類中進行展示,這裡我寫了乙個showinputpwddialog方法 輸入密碼對話方塊 private void showinputpwddialog 方式二 可...
自定義View的兩種方式
一 xib自定義view 1.思路 2.關鍵 1 import23 class45 inte ce67 8 模型資料9 1113 14 15 通過模型資料來建立乙個view 16 1819 end 1 import 2 import 34 inte ce 5 property weak,nonato...
spark兩種自定義排序方式
一 目標物件新增隱式轉換函式的方式實現自定義排序 object mysortelse 隱式轉換函式實現自定義排序 object customsort1 學生類 case class student name string,age int,score int 二 目標物件實現ordered特質的方式實...