1.19 TryCatch

閱讀時間約 4 分鐘

使用 TryCatch 處理註冊入學

一個用於管理學生註冊的智能合約。該合約有一個名為 registerStudent() 的函數,用於處理學生的註冊請求。該函數需要檢查學生的資格並將其添加到學生名單中。但是,可能會出現各種錯誤,例如學生信息不完整、學費未支付或註冊名額已滿。

try 區塊包含檢查學生信息、學費支付情況和註冊名額的代碼,以及將學生添加到學生名單中的代碼。如果任何檢查失敗,控制將會轉移到 catch Error(string memory reason) 區塊。reason 變量將會被分配可讀錯誤消息,合約將會回滾,將錯誤消息返回給調用者。

如果發生沒有可讀錯誤消息的錯誤,控制將會轉移到 catch (bytes memory reason) 區塊。reason 變量將會被分配原始錯誤數據,合約將會回滾,將原始錯誤數據返回給調用者。

contract StudentRegistration {

struct Student {
uint256 studentId;
string name;
string email;
uint256 tuitionPaid;
}

mapping(uint256 => Student) public students;
uint256 public registrationCount;

function registerStudent(uint256 studentId, string memory name, string memory email, uint256 tuitionPaid) public {
// 嘗試註冊學生
try {
// 檢查學生信息是否完整
require(studentId > 0 && bytes(name).length > 0 && bytes(email).length > 0, "Invalid student information");

// 檢查學費是否支付
require(tuitionPaid >= 1000, "Insufficient tuition payment");

// 檢查註冊名額是否已滿
require(registrationCount < 100, "Registration limit reached");

// 將學生添加到學生名單中
students[studentId] = Student(studentId, name, email, tuitionPaid);

// 更新註冊計數
registrationCount++;

// 發出註冊成功事件
emit StudentRegistered(studentId, name, email);
} catch Error(string memory reason) {
// 處理註冊失敗的錯誤
revert(reason);
} catch (bytes memory reason) {
// 處理所有其他類型的錯誤
revert(reason);
}
}

event StudentRegistered(uint256 studentId, string name, string email);
}
尋大神腳印, 亦步亦趨。
留言0
查看全部
發表第一個留言支持創作者!
1. Takeaway Data Structures 資料結構 - Array, Mapping, Struct 與 Enum 及程式碼實作 - 50:14 Returns - 12:21 Visibility 可視性 - public, private, external, interna
1. Highlight Wallet 區塊鏈錢包知識 - 24:25 Miners & Nodes 礦工與節點生態解析 - 25:48 Consensus 共識:Proof of Work, POW 工作量證明 & Proof of Stake, POS 持有量證明 - 33:05 Enc
1. Highlight Wallet 區塊鏈錢包知識 - 24:25 Miners & Nodes 礦工與節點生態解析 - 25:48 Consensus 共識:Proof of Work, POW 工作量證明 & Proof of Stake, POS 持有量證明 - 33:05 Enc
1. Highlight Wallet 區塊鏈錢包知識 - 24:25 Miners & Nodes 礦工與節點生態解析 - 25:48 Consensus 共識:Proof of Work, POW 工作量證明 & Proof of Stake, POS 持有量證明 - 33:05 Enc
1. Takeaway Data Structures 資料結構 - Array, Mapping, Struct 與 Enum 及程式碼實作 - 50:14 Returns - 12:21 Visibility 可視性 - public, private, external, interna
1. Highlight Wallet 區塊鏈錢包知識 - 24:25 Miners & Nodes 礦工與節點生態解析 - 25:48 Consensus 共識:Proof of Work, POW 工作量證明 & Proof of Stake, POS 持有量證明 - 33:05 Enc
1. Highlight Wallet 區塊鏈錢包知識 - 24:25 Miners & Nodes 礦工與節點生態解析 - 25:48 Consensus 共識:Proof of Work, POW 工作量證明 & Proof of Stake, POS 持有量證明 - 33:05 Enc
1. Highlight Wallet 區塊鏈錢包知識 - 24:25 Miners & Nodes 礦工與節點生態解析 - 25:48 Consensus 共識:Proof of Work, POW 工作量證明 & Proof of Stake, POS 持有量證明 - 33:05 Enc
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
▍盤勢分析 昨天加權開高走低又拉起來 終場大漲 453.73 點,收 17681.52 櫃買開最高,走低又拉起來,終場上漲 2.03 點,收 230.19 ▍籌碼分析 現貨: 外資大買超 801.69 E => 多 大盤扣除ETF資券進出 融資減,融券
大盤熱錢資金目前流往AI 光電 半導體 電子 網通
原本以為還要震盪幾天 難得在星期四表態…直接暴走。 當然是因為台積電法說史無前例的強 ADR +9% 今天加權開高是一定的, 就看是開高走高還是開高走低… 昨天一個500-450回檔以後直接收最高。 建議看不懂這邊先空手, 我自己做空420也停損430 還好不是被尬到511停損。
Thumbnail
外資周3史上第三大賣超 782 億 2萬多口空單剛好趁結算日獲利收割 經過前2日的重挫後 昨日大盤開盤隨即高拉達140點 而後漲幅收斂 終場上漲66 點 量縮至成交量2705億 收了一根上影紅K 短線趨勢維持空頭架構 是空頭的反彈波 大盤指數站上了季線又跌落 收盤在季線下附近
Thumbnail
1/18 今日加權指數開高走高在9:20左右遇到賣壓下殺,震盪。外資賣超87億,投信買超33億,季線附近反彈收紅K。臺積電法說:AI繼續衝,3nm營收佔比增加三倍。工業電腦大廠樺漢以44億元買下德商股權。三星與Google Cloud合作。這是個人研究看法整理,投資風險自負。
Thumbnail
阿茹姐的wish入手快半年了 , 買車時車商並沒有特別處理漆面 這次留車洗車打蠟就用美光d151處理 , 拋乾淨後就可以開始打蠟 最後再一層柯林915 銀的乾淨 , 銀的發亮
Thumbnail
工作室鄰居羅姐的altis , 每次過年前敦親睦鄰的"公關蠟"之一 一年洗沒幾次 , 一次就洗一整天 年獸級海底撈沙土樹葉 內裝清理+打蠟 疲勞
Thumbnail
年前保養完 , 接著開始洗車日 , 一日三洗的第一台 陳姐的行車記錄器原本插在點菸器座上 , 因為載家人有手機充電需要插快充頭 將原本行車記錄器接到取電器再收進內裝裡 入手一年多 , 全部使用柯林蠟 , 柯林很適合銀色系的車 845+915
Thumbnail
本文同步放在威利熬雞湯分頁 我覺得投資新手常見的情況,通常是會在網路或電視上找所謂的「投資老師」或「投資專家」例如說是電視上的合法投顧老師或是網路FB上的投資大神。如果去觀察這些老師的FB,時常都會發表對於一些標的看法,甚至是他們自己買了那些股票或是ETF的訊息。 比較好的作法是?
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
▍盤勢分析 昨天加權開高走低又拉起來 終場大漲 453.73 點,收 17681.52 櫃買開最高,走低又拉起來,終場上漲 2.03 點,收 230.19 ▍籌碼分析 現貨: 外資大買超 801.69 E => 多 大盤扣除ETF資券進出 融資減,融券
大盤熱錢資金目前流往AI 光電 半導體 電子 網通
原本以為還要震盪幾天 難得在星期四表態…直接暴走。 當然是因為台積電法說史無前例的強 ADR +9% 今天加權開高是一定的, 就看是開高走高還是開高走低… 昨天一個500-450回檔以後直接收最高。 建議看不懂這邊先空手, 我自己做空420也停損430 還好不是被尬到511停損。
Thumbnail
外資周3史上第三大賣超 782 億 2萬多口空單剛好趁結算日獲利收割 經過前2日的重挫後 昨日大盤開盤隨即高拉達140點 而後漲幅收斂 終場上漲66 點 量縮至成交量2705億 收了一根上影紅K 短線趨勢維持空頭架構 是空頭的反彈波 大盤指數站上了季線又跌落 收盤在季線下附近
Thumbnail
1/18 今日加權指數開高走高在9:20左右遇到賣壓下殺,震盪。外資賣超87億,投信買超33億,季線附近反彈收紅K。臺積電法說:AI繼續衝,3nm營收佔比增加三倍。工業電腦大廠樺漢以44億元買下德商股權。三星與Google Cloud合作。這是個人研究看法整理,投資風險自負。
Thumbnail
阿茹姐的wish入手快半年了 , 買車時車商並沒有特別處理漆面 這次留車洗車打蠟就用美光d151處理 , 拋乾淨後就可以開始打蠟 最後再一層柯林915 銀的乾淨 , 銀的發亮
Thumbnail
工作室鄰居羅姐的altis , 每次過年前敦親睦鄰的"公關蠟"之一 一年洗沒幾次 , 一次就洗一整天 年獸級海底撈沙土樹葉 內裝清理+打蠟 疲勞
Thumbnail
年前保養完 , 接著開始洗車日 , 一日三洗的第一台 陳姐的行車記錄器原本插在點菸器座上 , 因為載家人有手機充電需要插快充頭 將原本行車記錄器接到取電器再收進內裝裡 入手一年多 , 全部使用柯林蠟 , 柯林很適合銀色系的車 845+915
Thumbnail
本文同步放在威利熬雞湯分頁 我覺得投資新手常見的情況,通常是會在網路或電視上找所謂的「投資老師」或「投資專家」例如說是電視上的合法投顧老師或是網路FB上的投資大神。如果去觀察這些老師的FB,時常都會發表對於一些標的看法,甚至是他們自己買了那些股票或是ETF的訊息。 比較好的作法是?